Modification et enregistrement des pages
Nous allons créer une nouvelle page nommé "modifier-article.php" qui sera enregistrée dans le dossier "admin" et qui va nous permettre de modifier nos pages ou articles.
Pour ne pas changer, on récupère l'identifiant transmit dans l'url depuis la page "voir-categorie.php", puis on va chercher les données correspondant dans la table adéquate.
Petit rappel du lien de la page "voir-categorie.php" :
<a href="modifier-article.php?id='.$affiche['id'].'"><img src="images/modifier.png" alt="Modifier"/></a>
On va donc récupérer nos données et les afficher une fois de plus directement dans un formulaire. Dans un premier temps, on fait notre requête pour allé chercher les éléments qui nous intéresse.
<?php // on se connecte à la base de données include('../connexion_bd.php'); mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe"); mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de
donnée. Assurez vous d\'avoir correctement remplit les données du fichier
connexion_bd.php.'); $page = mysql_query("SELECT * FROM CONTENU WHERE id='".mysql_real_escape_string
($id_transmit)."'"); while($affiche = mysql_fetch_array($page)) { $id_categorie=$affiche['id_categorie']; $titre=$affiche['titre']; $description=nl2br($affiche['description']); $contenu=stripcslashes($affiche['texte']); } ?>
Je vous rappel que notre contenu sera affiché grâce au logiciel ECKeditor ... donc il ne faut pas oublier le script dans l'entête du site ainsi qu'au niveau du textarea.
<p>Contenu de la page :<br/> <textarea name="contenu" rows="10" cols="50" ><?php echo $contenu;?></textarea> <script type="text/javascript"> CKEDITOR.replace( 'contenu' ); </script></p>
Il faut également afficher notre liste déroulante avec l'affichage de la bonne catégorie dans celui-ci.
<p>Catégorie :<br/> <select name="cat"> <option value="">Selectionnez une catégorie</option> <?php //On selectionne les données pour créer le formulaire déroulant $categorie = mysql_query("SELECT id,nom_categorie FROM CATEGORIES ORDER BY id ASC"); //on boucle while($affiche = mysql_fetch_array($categorie)) { echo '<option value="'.$affiche['id'].'" '; //Si la catégorie correspond à celle enregistré, on l'affiche if ($affiche['id']==$id_categorie) {echo "selected='selected'";} echo '>'.$affiche['nom_categorie'].'</option>'; } //Fermeture de la connexion à la base de données mysql_close(); ?> </select> </p>
Dans ce code, on compare le numéro du champ "nom_categorie" de la table "CATEGORIES" avec le numéro contenu dans le champ "id_categorie" de la table "CONTENU", ce qui nous amène à la comparaison suivante pour afficher la bonne catégorie:
if ($affiche['id']==$id_categorie) {echo "selected='selected'";}
Pour le reste, ça devient de la routine ... traitement du formulaire->vérification->modification des données (UPDATE).
Le fichier modifier-article.php dans son ensemble :
<!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>Modifier un article</title> </head> <body> <div id="moncadre"> <?php include('menu.php');?> <div class="cadrecentrale"> <h1>Modifier un article</h1> <?php $id_transmit=$_GET['id']; //Traitement du formulaire if(isset($_POST["Valider"])) { $titre = htmlspecialchars(stripcslashes(trim($_POST["titre"]))); $description = htmlspecialchars(stripcslashes($_POST["description"])); $contenu = stripcslashes($_POST["contenu"]); $categorie = $_POST["cat"]; //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>'; } else if(empty($contenu)){ $alerte2 ='<div class="erreur"><a name="ok"></a>Vous n\'avez pas saisie de contenu.
</div>'; } else if(empty($categorie)){ $alerte3 ='<div class="erreur"><a name="ok"></a>Vous n\'avez pas sélectionné de catégorie
.</div>'; } //Si tout est ok else { //on se connecte à la base de données include('../connexion_bd.php'); mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe"); mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de
donnée. Assurez vous d\'avoir correctement remplit les données du fichier
connexion_bd.php.'); // on enregistre les données $result = mysql_query(" UPDATE CONTENU SET
id_categorie='".mysql_real_escape_string($categorie)."',
titre='".mysql_real_escape_string($titre)."',
description='".mysql_real_escape_string($description)."',
texte='".mysql_real_escape_string($contenu)."'
WHERE id = '$id_transmit'"); //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="erreur"><a name="ok"></a><b>Page modifiée avec
succès!</b></div>'; } //On ferme else } //On ferme if(isset($_POST["Valider"])) } // Fermeture de la connexion à la base de données mysql_close(); ?> <?php // on se connecte à la base de données include('../connexion_bd.php'); mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe"); mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de
donnée. Assurez vous d\'avoir correctement remplit les données du fichier
connexion_bd.php.'); $page = mysql_query("SELECT * FROM CONTENU WHERE id='".mysql_real_escape_string
($id_transmit)."'"); while($affiche = mysql_fetch_array($page)) { $id_categorie=$affiche['id_categorie']; $titre=$affiche['titre']; $description=nl2br($affiche['description']); $contenu=stripcslashes($affiche['texte']); } ?> <?php echo $message_ok;?> <form action="#ok" method="post"> <?php echo $alerte0;?> <p>Titre de la page :<br/> <input name="titre" size="65" value="<?php echo $titre;?>" type="text"/></p> <?php echo $alerte1;?> <p>Description de la page :<br/> <textarea name="description" rows="10" cols="50" ><?php echo $description;?> </textarea></p> <?php echo $alerte2;?> <p>Contenu de la page :<br/> <textarea name="contenu" rows="10" cols="50" ><?php echo $contenu;?> </textarea> <script type="text/javascript"> CKEDITOR.replace( 'contenu' ); </script></p> <?php echo $alerte3;?> <p>Catégorie :<br/> <select name="cat"> <option value="">Selectionnez une catégorie</option> <?php //On sélectionne les données pour créer le formulaire déroulant $categorie = mysql_query("SELECT id,nom_categorie FROM CATEGORIES ORDER BY id ASC"); while($affiche = mysql_fetch_array($categorie)) { echo '<option value="'.$affiche['id'].'" '; if ($affiche['id']==$id_categorie) {echo "selected='selected'";} echo '>'.$affiche['nom_categorie'].'</option>'; } //Fermeture de la connexion à la base de données mysql_close(); ?> </select></p> <p> <input name="Valider" value="Valider" type="submit"/> <input name="Effacer" value="Effacer" type="reset"/> </p> </form> </div> <?php include('../footer.php');?> </div> </body> </html>

Signaler une erreur
Création de la page pour la rédaction des articles
Création de la partie administration
Suppression des pages



