Gestion de la page d'accueil du site

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.
Nous allons maintenant créer une page nommé "admin-index.php" qui va nous permettre de donner un titre et une description à la page d'accueil du site. Nous allons également ajouter un formulaire qui va permettre d'écrire directement sur la page d'accueil (pratique pour faire passer une news ou je ne sais quoi d'autre ).
<?php
//On vérifie que la connexion est autorisé
session_start();
$_SESSION['IsAuthorized']=true;
include('../fonctions.php');
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr-fr">
 
<head>
 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../ckeditor/ckeditor.js"></script>
<title>Page d'accueil</title> </head>   <body>   <div id="moncadre">   <?php include('menu.php');?>   <div class="cadrecentrale">   <h1>Gestion de la page d'accueil du site</h1></div>
 
<!--Nous placerons le code à cet endroit-->
 
<?php include('footer.php');?>
 
</div>
 
</body>
 
</html>
Dans un premier temps, on met en place le formulaire. Pour simplifier un peut le tutoriel, j'ai directement ajouté toutes les variables ainsi que l'éditeur CKEditor dans le code ci-dessous :
<?php
if(isset($message_ok)) echo $message_ok;
?>
 
<form action="#ok" method="post">
 
<?php if(isset($alerte0)) echo $alerte0;?>
<p>Titre de la page d accueil:<br/>
    <input name="titre" size="65" value="<?php     if(isset($titre) && !empty($titre)) echo $titre; else if(!empty($_POST["titre"])) { echo stripcslashes(htmlspecialchars($_POST["titre"],ENT_QUOTES)); } ?>" type="text"/>
</p>
 
<?php if(isset($alerte1)) echo $alerte1;?>
<p>Description de la page d accueil:<br/>
<textarea name="description" rows="10" cols="50" ><?php
if(isset($description) && !empty($description)) echo $description;
else if(!empty($_POST["description"])) {
    echo stripcslashes(htmlspecialchars($_POST["description"],ENT_QUOTES));
}
?></textarea>
</p>
 
<?php if(isset($alerte2)) echo $alerte2;?>
<p>Contenu de la page d accueil:<br/>
<textarea name="contenu" rows="10" cols="50" ><?php
if(isset($contenu) && !empty($contenu)) echo $contenu;
else if(!empty($_POST["contenu"])) {
echo stripcslashes(htmlspecialchars($_POST["contenu"],ENT_QUOTES));
}
?></textarea>
<script type="text/javascript">
CKEDITOR.replace( 'contenu',
{
    filebrowserBrowseUrl : '/ckfinder/ckfinder.html',
    filebrowserImageBrowseUrl : '/ckfinder/ckfinder.html?type=Images',
    filebrowserFlashBrowseUrl : '/ckfinder/ckfinder.html?type=Flash',
    filebrowserUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files&currentFolder=/archive/',
    filebrowserImageUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images&currentFolder=/cars/',
    filebrowserFlashUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
}
);
 
</script>
</p>
 
<p>
<input name="Valider" value="Valider" type="submit"/>
<input name="Effacer" value="Effacer" type="reset"/>
</p>
</form>
Bon, il n'y a pas grand chose à dire, on vérifie simplement si la variable existe pour l'afficher dans chaque élément du formulaire.

Au dessus de ce code commence la partie PHP.
 
On se connecte à la base de données puis on vérifie chaque élément du formulaire :
<?php
//On se connecte à la base de données
include('../connexion_bd.php');
connexion_bd();
 
//Traitement du formulaire
if(isset($_POST["Valider"]))
{
    $titre = htmlspecialchars(stripcslashes(trim($_POST["titre"])));
    $description = htmlspecialchars(stripcslashes($_POST["description"]));
    $contenu = stripcslashes($_POST["contenu"]);
 
    //Vérification du formulaire
    if(empty($titre)){
        $alerte0 ='<div class="erreur"><a name="ok"></a>Vous n\'avez pas saisie de titre.</div>';
    }
    else if(empty($description)){
        $alerte1 ='<div class="erreur"><a name="ok"></a>Vous n\'avez pas saisie de description.</div>';
    }

Si tout est ok, on enregistre les données mais il faut savoir au préalable si c'est le premier enregistrement inséré ou si il y a  déjà quelque chose.
//Si tout est ok
    else
    {
        /*------------------------Enregistrement des données---------------------------------*/
        //on vérifie si il y a un enregistrement
        $verif = mysql_query("SELECT * FROM ACCUEIL");
        //on voie si il y a quelque chose
        if(mysql_num_rows($verif) == 0)
        {
            //Si il n'y a rien, on enregistre les données
            $result = mysql_query("INSERT INTO ACCUEIL VALUES             (             '',             '".mysql_real_escape_string($titre)."',             '".mysql_real_escape_string($description)."',             '".mysql_real_escape_string($contenu)."'             )             ");
            //Si il y a une erreur, on crie ^^
            if (!$result) {
                die('Requête invalide : ' . mysql_error());
            }
            else{
                //Si tout est ok, on informe le webmaster
                $message_ok = '<div class="ok"><a name="ok"></a><b>Page enregistr&eacute;e avec succ&egrave;s!</b></div>';
            }
        }
Dans le cas ou il y a déjà quelque chose en BD, en remplace tout simplement :
        //Sinon si la 1ere requête retourne 0, c'est qu'il y a 1 enregistrement
        else if(mysql_num_rows($verif) == 1)
        {
            //On modifie les données de l'enregistrement
            $result = mysql_query("UPDATE ACCUEIL SET             titre='".mysql_real_escape_string($titre)."',             description='".mysql_real_escape_string($description)."',             texte='".mysql_real_escape_string($contenu)."'             WHERE id = 1");
            //Si il y a une erreur, on crie ^^
            if (!$result) {
                die('Requête invalide : ' . mysql_error());
            }
            else{
                //Si tout est ok, on informe le webmaster
                $message_ok = '<div class="ok"><a name="ok"></a>Page enregistr&eacute;e avec succ&egrave;s!</div>';
            }
        }
        //On ferme else
    }
    //On ferme if(isset($_POST["Valider"]))
}
/*------------------------Fin enregistrement des données---------------------------------*/

Pour finir, en sélectionne les éléments de la table "ACCUEIL", pour les afficher dans le formulaire.
//On sélectionne les données pour les ré afficher dans le formulaire
$index = mysql_query("SELECT titre,description,texte FROM ACCUEIL WHERE id=1");
 
while($accueil = mysql_fetch_array($index))
{
    $titre=$accueil['titre'];
    $description=$accueil['description'];
    $contenu=$accueil['texte'];
}
?>

Voir/déposer un commentaire (0) | Signaler un problème