Problème d'insertion avec MySQL
Résolu
Clément56
-
Clément56 -
Clément56 -
Bonjour,
J'ai réalisé un code en PHP pour une page d'inscription. Voici ce code:
J'ai fais un if..else pour verifier si le pseudo n'existe pas déjà. Si il existe déjà, pas de problème, mais si il n'existe pas rien ne s'inscrit dans la BDD, rien ne s'affiche, on dirait qu'il ne tient pas compte du else :s
Si vous savez pourquoi, je suis preneur
A+ tout le monde
J'ai réalisé un code en PHP pour une page d'inscription. Voici ce code:
<?php include('scripts/conf.php'); //configuration de la BDD //conversion des caracteres speciaux pour la creation du fichier $pseudo = $_POST['pseudo']; $faux = array("à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "œ", "š", "Þ", "ù", "ú", "û", "ü", "ý", "ÿ", " "); $vrai = array("a", "a", "a", "a", "a", "a", "x", "c", "e", "e", "e", "e", "i", "i", "i", "i", "o", "n", "o", "o", "o", "o", "o", "o", "x", "s", "b", "u", "u", "u", "u", "y", "y", "-"); $newpseudo = str_replace($faux, $vrai, $pseudo); $mail = "".$_POST['mail']."@".$_POST['mail2'].""; $mdp = $_POST['pass1']; $nom = $_POST['nom']; $prenom = $_POST['prenom']; //Verfier que le p^seduo n'existe pas deja... $reponse = mysql_query("SELECT * FROM membres WHERE pseudo = '$newpseudo'"); while ($donnees = mysql_fetch_array($reponse) ){ if(isset($donnees['id'])){ echo "<p>Désolé, ce pseudo est déjà pris</p>"; include('inscription.php'); } elseif(!isset($donnees['id'])){ $pseudo = ($_POST['pseudo']); $faux = array("à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "œ", "š", "Þ", "ù", "ú", "û", "ü", "ý", "ÿ", " "); $vrai = array("a", "a", "a", "a", "a", "a", "x", "c", "e", "e", "e", "e", "i", "i", "i", "i", "o", "n", "o", "o", "o", "o", "o", "o", "x", "s", "b", "u", "u", "u", "u", "y", "y", "-"); $newpseudo = str_replace($faux, $vrai, $pseudo); echo $newpseudo; include('scripts/conf.php'); //configuration de la BDD $mail = "".$_POST['mail']."@".$_POST['mail2'].""; $mdp = ($_POST['pass1']); $nom = ($_POST['nom']); $prenom = ($_POST['prenom']); mysql_query("INSERT INTO membres VALUES('', '$nom', '$prenom', '$mail', '$newpseudo', '$mdp', '?')"); mkdir("membres/".$newpseudo."", 0777); } } ?>
J'ai fais un if..else pour verifier si le pseudo n'existe pas déjà. Si il existe déjà, pas de problème, mais si il n'existe pas rien ne s'inscrit dans la BDD, rien ne s'affiche, on dirait qu'il ne tient pas compte du else :s
Si vous savez pourquoi, je suis preneur
A+ tout le monde
A voir également:
- Problème d'insertion avec MySQL
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
3 réponses
Pour ce genre de choses, je compte le nombre de lignes retournées. Si ce nombre est 0, insertion possible, sinon c'est que ça existe déjà.
Bingo!
Ca marche à merveille, voici le code (+/- propre)
Encore une fois merci!
Ca marche à merveille, voici le code (+/- propre)
$retour = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo = '$newpseudo'"); $donnees = mysql_fetch_array($retour); $nb_pseudo = $donnees['nb_pseudo']; if($nb_pseudo == 0){ $pseudo = ($_POST['pseudo']); $faux = array("à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "œ", "š", "Þ", "ù", "ú", "û", "ü", "ý", "ÿ", " "); $vrai = array("a", "a", "a", "a", "a", "a", "x", "c", "e", "e", "e", "e", "i", "i", "i", "i", "o", "n", "o", "o", "o", "o", "o", "o", "x", "s", "b", "u", "u", "u", "u", "y", "y", "-"); $newpseudo = str_replace($faux, $vrai, $pseudo); include('scripts/conf.php'); //configuration de la BDD $mail = "".$_POST['mail']."@".$_POST['mail2'].""; $mdp = ($_POST['pass1']); $nom = ($_POST['nom']); $prenom = ($_POST['prenom']); mysql_query("INSERT INTO membres VALUES('', '$nom', '$prenom', '$mail', '$newpseudo', '$mdp', '?')"); mkdir("membres/".$newpseudo."", 0777); echo'<div id="ok" style="padding: 5px; width: 400px; border: 1px dashed #000; margin: auto;"><center>Bienvenue '.$newpseudo.'</center><br />Merci de vous être inscrit à notre site. Les informations telles que votre nom, votre prénom, votre adresse mail ainsi que votre mot de passe, seron tenus secret. Seul l\'administrateur de la base de données à accès à ces données. Il n\'a aucunement le droit de les exploiter à des fins publicitaires... </div>'; } elseif($nb_pseudo != 0){ echo'<blink><p style="color: red">Désolé, le pseudo '.$newpseudo.' existe déjà!</p></blink>'; include('inscription.php'); }
Encore une fois merci!