Comparaison entre variable et bdd fonctionne bizarement
Posté : 19 déc. 2013, 12:46
Bonjour à toute et à tous
Je suis actuellement sur la création de l'espace admin de mon site afin de pouvoir tout gérer depuis celui-ci (Galerie photo, création de sous dossier, gestion de mes rendez-vous.....etc) seulement j'ai un souci un tantinet curieux lorsque qu'il sagit de créer et ajouter des dossiers dans ma bdd. Je m'explique :
Mon formulaire de dépôt pour la galerie se compose ainsi :
- 1 formulaire d'upload d'images => aucun souci
- 1 formulaire de création de dossier et ajout de ce nom de dossier en bdd => problème
- 1 formulaire de suppression de dossier avec un select généré dynamiquement via la bdd quand on crée un dossier.
Voici le page avec les formulaires :
- Je rentre un nom de dossier dans la boite et je valise mon formulaire
- Si il n'existe pas dans la bdd ni sous forme de dossier, tout se crée et mes messages de confirmation s'affiche
- Je réitère une seconde fois avec le même nom de dossier et la il me recrée une ligne en bdd avec le même nom mais pas de nouveau dossier par contre
- Je test une troisième fois et la ça me mets le bon message soit : le dossier existe déjà dans la bdd
- J'essaye avec un autre nom de dossier et la rien a faire, je peux le créer en bdd autant de fois que je le souhaite
Voici le code de réception du formulaire de création :
Merci à ceux qui pourront m'aider
Cordialement
Je suis actuellement sur la création de l'espace admin de mon site afin de pouvoir tout gérer depuis celui-ci (Galerie photo, création de sous dossier, gestion de mes rendez-vous.....etc) seulement j'ai un souci un tantinet curieux lorsque qu'il sagit de créer et ajouter des dossiers dans ma bdd. Je m'explique :
Mon formulaire de dépôt pour la galerie se compose ainsi :
- 1 formulaire d'upload d'images => aucun souci
- 1 formulaire de création de dossier et ajout de ce nom de dossier en bdd => problème
- 1 formulaire de suppression de dossier avec un select généré dynamiquement via la bdd quand on crée un dossier.
Voici le page avec les formulaires :
<!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" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="fr" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<link href="index.css" rel="stylesheet" type="text/css" />
<link href="depot_gallerie.css" rel="stylesheet" type="text/css" />
</head>
<body>
<p class="logo"><a href="index.php"><img src="logo_temp.png" alt="Logo Prestat'Hair"/></a></p>
<div id="gallerie">
<h1>Formulaire de dépôt d'images dans la gallerie...</h1>
<form action="recu_depot_gallerie.php" method="post" enctype="multipart/form-data">
<p><i>Complétez le formulaire. Les champs marqué par </i><em>*</em> sont <em>obligatoires</em></p>
<input type="hidden" name="legende1" id="legende1"/>
<input type="hidden" name="legende2" value="qk4e5fg6t9yu1" id="legende2"/>
<p>
<fieldset>
<legend>Paramètre de l'image</legend>
<label for="title">Balise title :<em>*</em></label> <input type="text" name="title" maxlength="150" id="title" required = "required"/><br/>
<label for="alt">Balise alt :<em>*</em></label> <input type="text" name="alt" maxlength="150" "id="alt" required = "required"/><br/>
<label for="destination">Destination :<em>*</em></label> <input type="text" name="destination" maxlength="150" "id="destination" required = "required"/><br/>
</fieldset>
<fieldset>
<legend>Image (format 230x173 px)</legend>
<label for="avatar">Uploader L'image :<em>*</em></label> <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="avatar" id="avatar">
</fieldset>
<p><input type="submit" value="Déposer l'image" name="envoyer"></p>
</p>
</form>
<h1>Créer un dossier dans la gallerie...</h1>
<form action="creation_dossier.php" method="post" enctype="multipart/form-data">
<label for="nom_dossier">Nom du dossier :</label> <input type="text" name="nom_dossier" required="required" maxlength="30" id="nom_dossier"/><br/>
<input type="hidden" name="legende1" id="legende1"/>
<input type="hidden" name="legende2" value="qk4e5fg6t9yu1" id="legende2"/>
<p><input type="submit" value="Création" name="envoyer"></p>
</form>
<h1>Supprimer un dossier dans la gallerie...</h1>
<form action="supprimer_dossier.php" method="post" enctype="multipart/form-data">
<label for="supprimer_dossier">Nom du dossier :</label>
<select name="supprimer_dossier" id="supprimer_dossier" required="required">
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=coiffure', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT nom_dossier FROM dossier_gallerie');
while ($donnees = $reponse->fetch())
{
?>
<option value="<?php echo $donnees ['nom_dossier']?>"><?php echo $donnees ['nom_dossier']?></option>
<?php }?>
</select>
<input type="hidden" name="legende1" id="legende1"/>
<input type="hidden" name="legende2" value="qk4e5fg6t9yu1" id="legende2"/>
<p><input type="submit" value="Suppression" name="envoyer"></p>
</form>
</div>
</body>
</html>
Le problème se situe au moment ou je crée un dossier : - Je rentre un nom de dossier dans la boite et je valise mon formulaire
- Si il n'existe pas dans la bdd ni sous forme de dossier, tout se crée et mes messages de confirmation s'affiche
- Je réitère une seconde fois avec le même nom de dossier et la il me recrée une ligne en bdd avec le même nom mais pas de nouveau dossier par contre
- Je test une troisième fois et la ça me mets le bon message soit : le dossier existe déjà dans la bdd
- J'essaye avec un autre nom de dossier et la rien a faire, je peux le créer en bdd autant de fois que je le souhaite
Voici le code de réception du formulaire de création :
<?php
$dossier=trim(stripslashes($_POST["nom_dossier"]));
try
{
$bdd = new PDO('mysql:host=localhost;dbname=coiffure', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$res = $bdd->query('SELECT nom_dossier FROM dossier_gallerie');
$requete = $res->fetch(PDO::FETCH_ASSOC);
$return = $res->fetch();
if($return['nom_dossier'] == $dossier)
{
echo "<h4>Le nom de dossier existe déjà dans la base de donnée. Retour à la page <a href=\"depot_gallerie.php\">Dépôt Gallerie</a></h4>";
}
elseif($return['nom_dossier'] != $dossier)
{
try
{
$bdd = new PDO('mysql:host=localhost;dbname=coiffure', 'root', '');
$bdd->query("SET NAMES UTF8");
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare ('INSERT INTO dossier_gallerie(ID, nom_dossier)
VALUES(:ID, :nom_dossier)');
$req->execute(array(
'ID' => NULL,
'nom_dossier'=>$_POST['nom_dossier']));
{
echo "<h4>Le nom de dossier a été ajouté à la base de donnée. Retour à la page <a href=\"depot_gallerie.php\">Dépôt Gallerie</a></h4>";
}
}
if (isset($_POST["envoyer"])){
// On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
$etat = "erreur";
if (isset($_POST["nom_dossier"])) $_POST["nom_dossier"]=trim(stripslashes($_POST["nom_dossier"]));
if (empty($_POST["nom_dossier"])) {
$erreur="Erreur dans la transmission du formulaire...";
}
elseif (!empty($_POST["legende1"])) {
$erreur="Erreur dans la transmission du formulaire...";
}
// Si tous les champs sont valides, on change l'état à ok
else {
$etat="ok";
}
}
if ($etat=="ok"){
// Cas où le formulaire a été soumis mais il y a des erreurs
if(is_dir("../images/uploads/gallerie/$dossier"))
{
echo "Le dossier existe déjà";
}
else
{
mkdir("../images/uploads/gallerie/$dossier");
echo "Le dossier a été crée";
}
}
elseif ($etat=="erreur"){
echo "<h4>$erreur</h4>Retour à la page <a href=\"depot_gallerie.php\">Dépôt Gallerie</a>";
}
else {
echo "<h4>Erreur dans la transmission du formulaire.Retour à la page <a href=\"index.php\">Accueil</a></h4>";
}
?>
Ne faites pas trop attention à la façon d'on je présente le code, j'ai essayé plein de solution donc c'est un peu bordélique =).Merci à ceux qui pourront m'aider
Cordialement