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&eacute;gorie :<br/>
 <input name="titre" size="65" value="<?php
if (!empty($_POST["
titre"])) {
echo stripcslashes(htmlspecialchars($_POST["
titre"],ENT_QUOTES));
}?>"
type="text"/></p>   <p>Description de la cat&eacute;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>
Traitement et enregistrement des données :
<?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&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;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&eacute;gorie enregistr&eacute;e
avec succ&egrave;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&eacute;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&eacute;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/
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&eacute;gorie</title> </head>   <body>   <div id="moncadre"> <?php include('menu.php');?>   <div class="cadrecentrale"> <h1>Ajouter une cat&eacute;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&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;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&eacute;gorie enregistr&eacute;e avec succ&egrave;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&eacute;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&eacute;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>
Il va de soit que cette nouvelle page est à enregistrer dans la partie "admin" ^^.
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:
$message_ok = '<div class="erreur"><a name="ok"></a><b>Cat&eacute;gorie enregistr&eacute;e avec succ&egrave;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>';

Catégorie Créer un site dynamique

Commentaire sur : Création et enregistrement des catégories