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 CKeditor ... 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>'; } ?> </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']; // 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.'); //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 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"])) } //On sélectionne les données pour les afficher dans le formulaire $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 if(isset($message_ok)) { echo $message_ok; } ?> <form action="#ok" method="post"> <?php if(isset($alerte0)) { echo $alerte0; } ?> <p>Titre de la page :<br/> <input name="titre" size="65" value="<?php echo $titre;?>" type="text"/></p> <?php if(isset($alerte1)) { echo $alerte1; } ?> <p>Description de la page :<br/> <textarea name="description" rows="10" cols="50" ><?php echo $description;?> </textarea></p> <?php if(isset($alerte2)) { 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 if(isset($alerte3)) { 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>'; } ?> </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



