1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
include_once('connexion.php') ;
#tu déclares des variables dont tu ne te sers jamais, si on les déclare c'est qu'on pense que c'est utile, donc on s'en sert
$RubriqueName = '' ;
$RubriqueDesc = '' ;
$MessageErreur = '' ;
#on va éviter de hard-coderles textes de manière disséminée dans le code pour des raisons de maintenance
define('ERREUR_NOM_ALBUM_DOUBLON','Ce nom existe déjà. Veuillez renommer votre album.') ;
define('ERREUR_NOM_ALBUM_VIDE','veuillez saisir le nom de lalbum') ;
define('ERREUR_DESC_ALBUM_VIDE','veuillez saisir le descriptif de l\'album') ;
# on traite les données venant de l'extérieur et on contrôle que les données sont conformes à nos attentes
# si la valeur a été fournies et qu'elle n'est pas vide
if( isset( $_POST['frm_rub_name'] ) && $_POST['frm_rub_name'] )
{
#stripslashes ne sert que si la directive magic_quotes_gpc est activée
if( get_magic_quotes_gpc() )
$_POST['frm_rub_name'] = stripslashes(($_POST['frm_rub_name']);
#1 la donnée est sécurisée
#l'échappement pour éviter les injections sur la lib mysql était important, la démarche était bonne, il faut conserver cette ligne
$RubriqueName = mysql_real_escape_string( $_POST['frm_rub_name'] ) ;
#2 la donnée est vérifiée, ce nom existe-il déjà ?
#on utilise la substitution dans les chaines entre guillemets, pas besoin de concaténer
$requete = "SELECT * FROM rubrique WHERE RubriqueName = '$RubriqueName'" ;
$resultat = mysql_query($requete) ;
$compteur = mysql_num_rows($resultat);
if($compteur > 0)
{
$MessageErreur = ERREUR_NOM_ALBUM_DOUBLON ;
}
}
else
{
$MessageErreur = ERREUR_NOM_ALBUM_VIDE ;
}
#on remarquera ici que le traitement est le même que au-dessus, on pourrait en faire une fonction pour faciliter la maintenance
if( isset( $_POST['frm_textarea_desc']) && $_POST['frm_textarea_desc'] )
{
#stripslashes ne sert que si la directive magic_quotes_gpc est activée
if( get_magic_quotes_gpc() )
$_POST['frm_textarea_desc'] = stripslashes(($_POST['frm_textarea_desc']);
$RubriqueDesc = mysql_real_escape_string( $_POST['frm_textarea_desc'] ) ;
}
else
{
$MessageErreur = ERREUR_DESC_ALBUM_VIDE ;
}
#si tout s'est bien passé et que les données ont été contrôlées, par extension s'il n'y a pas de message d'erreur
#on va insérer dans la base
if( ! $MessageErreur )
{
$Date = date("Y-m-d");
$Time = date("H:i:s");
#il pourrait être mieux préciser les champs de la table pour des raisons de maintenance
$queryResult = mysql_query("INSERT INTO(rubName, rubDesc, rubDate, rubTime) rubrique VALUES('$RubriqueName','$RubriqueDesc','$Date','$Time')") ;
if( ! $queryResult )
{
$MessageErreur = 'Une erreur est survenue, veuillez réessayer plus tard.'
}
else
{
mkdir("../photos/$RubriqueName",true);
#la rubrique a été ajoutée avec succès peut être remplacé par une redirection vers une page utile
header('Location:gestionRubrique.php') ;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
#une conversion implicite de type est faite par PHP, si la chaine est vide ou contient 0 la condition est fausse, sinon elle est vraie
if( $MessageErreur )
{ ?>
<div id="messageErreur"><?php echo $MessageErreur ; ?></div>
<?php
}
?>
<form action="BDDPhotos_admin_add_rub.php" enctype="multipart/form-data" method="post">
Nom:<br/>
<input type="text" name="frm_rub_name" size="50" value="<?php
#tu remarqueras que la condition est maintenant dans le traitement(en haut du script) et non quel part dans le HTML
#cela va simplifier la maintenance
#idem pour la variable $RubriqueDesc
echo $RubriqueName
?>"/>
<br/><br/>
Description:<br/>
<textarea name="frm_textarea_desc" rows="5" cols="40" value="<?php echo $RubriqueDesc ?>"></textarea>
<br/><br/>
<input type="submit" value="Ajouter rubrique" />
</form> |
Partager