Créer un site internet » Créer un site dynamique » Création de la partie administration » Création et enregistrement des catégories
Création et enregistrement des catégories
Nous allons maintenant créer la page permettant de créer et d'enregistrer les catégories. Cette nouvelle page se nomme "ajouter-categorie.php".
Pour ce faire, nous partons d'un simple formulaire :
<form action="#ok" method="post"> <p>Titre de la catégorie :<br/> <input name="titre" size="65" value="<?phpTraitement et enregistrement des données :
if (!empty($_POST["titre"])) {
echo stripcslashes(htmlspecialchars($_POST["titre"],ENT_QUOTES));
}?>" type="text"/></p> <p>Description de la catégorie :<br/> <textarea name="description" rows="10" cols="50" ><?php if (!empty($_POST["description"])) { echo stripcslashes(htmlspecialchars($_POST["description"],ENT_QUOTES)); }?></textarea></p> <p> <input name="Valider" value="Valider" type="submit"/> <input name="Effacer" value="Effacer" type="reset"/> </p> </form>
<?php //Si l'action de valider a été faite if(isset($_POST["Valider"])) { $titre = htmlspecialchars(stripcslashes(trim($_POST["titre"]))); $description = htmlspecialchars(stripcslashes($_POST["description"])); //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 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("INSERT INTO CATEGORIES VALUES
(
'',
'".mysql_real_escape_string($titre)."',
'".mysql_real_escape_string($description)."'
)
"); //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>Catégorie enregistrée
avec succès!</b></div>'; } //On ferme else } //On ferme if(isset($_POST["Valider"])) } ?>
Quelques explications :
htmlspecialchars : Convertit les caractères spéciaux en entités HTML.
stripcslashes : Retourne la chaîne après avoir supprimé tous les antislashs.
trim : Supprime les espaces (ou d'autres caractères) en début et fin de chaîne.
mysql_real_escape_string : Protège les caractères spéciaux d'une commande SQL.
Affichage des erreurs :
<?php if(isset($message_ok)) { echo $message_ok; } ?> <form action="#ok" method="post"> <?php if(isset($alerte0)) { echo $alerte0; } ?> <p>Titre de la catégorie :<br/> <input name="titre" size="65" value="<?php if (!empty($_POST["titre"])) { echo stripcslashes(htmlspecialchars($_POST["titre"],ENT_QUOTES)); }?>" type="text"/></p> <?php if(isset($alerte1)) { echo $alerte1; } ?> <p>Description de la catégorie :<br/> <textarea name="description" rows="10" cols="50" ><?php if (!empty($_POST["description"])) { echo stripcslashes(htmlspecialchars($_POST["description"],ENT_QUOTES)); }?></textarea></p> <p> <input name="Valider" value="Valider" type="submit"/> <input name="Effacer" value="Effacer" type="reset"/> </p> </form>if(isset($message_ok)) : signifie que si la variable "$message_ok" existe on affiche le contenu de la variable.
Le fichier "ajouter-categorie.php" dans son ensemble :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/Il va de soit que cette nouvelle page est à enregistrer dans la partie "admin" ^^.
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"/> <title>Ajouter une catégorie</title> </head> <body> <div id="moncadre"> <?php include('menu.php');?> <div class="cadrecentrale"> <h1>Ajouter une catégorie</h1> <?php //Si l'action de valider a été faite if(isset($_POST["Valider"])) { $titre = htmlspecialchars(stripcslashes(trim($_POST["titre"]))); $description = htmlspecialchars(stripcslashes($_POST["description"])); //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 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("INSERT INTO CATEGORIES VALUES ( '', '".mysql_real_escape_string($titre)."', '".mysql_real_escape_string($description)."' ) "); //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>Catégorie enregistrée avec succès!</b></div>'; } //On ferme else } //On ferme if(isset($_POST["Valider"])) } ?> <?php if(isset($message_ok)) { echo $message_ok; } ?> <form action="#ok" method="post"> <?php if(isset($alerte0)) { echo $alerte0; } ?> <p>Titre de la catégorie :<br/> <input name="titre" size="65" value="<?php if (!empty($_POST["titre"])) { echo stripcslashes(htmlspecialchars($_POST["titre"],ENT_QUOTES)); }?>" type="text"/></p> <?php if(isset($alerte1)) { echo $alerte1; } ?> <p>Description de la catégorie :<br/> <textarea name="description" rows="10" cols="50" ><?php if (!empty($_POST["description"])) { echo stripcslashes(htmlspecialchars($_POST["description"],ENT_QUOTES)); }?></textarea></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>
Attention : cette page n'est pas prévue pour apporter des modifications à votre catégorie suite à une première validation. A chaque fois que vous appuyez sur le bouton "Valider", c'est une nouvelle catégorie qui est créé..!
Pour éviter tout erreur, vous pouvez effectuer une redirection Javascript comme ci-dessous:
Pour éviter tout erreur, vous pouvez effectuer une redirection Javascript comme ci-dessous:
$message_ok = '<div class="erreur"><a name="ok"></a><b>Catégorie enregistrée avec succès!</b><br/>Vous allez être redirigé automatiquement d\'ici quelques secondes.</div>'; echo '<script> function redirection(page) {window.location=page;} setTimeout(\'redirection("index.php")\',7000); </script>';

Signaler une erreur
Création de la page d'accueil de l'administration
Création de la partie administration
Modification et enregistrement des catégories


