Verification si le pseudo existe
- Accueil
- Forum
- Programmation
- PHP
- Verification si le pseudo existe
Chooper01 Le 26 août 2016 à 23:07 (Édité le 25 janvier 2019 à 17:52)
J'ai une page profil.php mais lorsque l'utilisateur souhait modifié son pseudo je veux vérifie si il existe déjà mais sa veut pas alors que pour email sa fonctionne nickel alors que c'est les même lignes de code ...
Php :
if (isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo'])
{
$newpseudo = htmlspecialchars($_POST['newpseudo']) ;
$reqpseudo = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ?");
$reqpseudo->execute(array($newepseudo));
$pseudoexist = $reqpseudo->rowcount();
if ($pseudoexist == 0)
{
$insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ? ") ;
$insertpseudo->execute(array($newpseudo, $_SESSION['id'])) ;
header('Location: profil.php?id=' . $_SESSION['id']) ;
}
else
{
$erreur = "Pseudo déja utilisé !";
}
}
Les inputs ;
<fieldset>
<legend> Profil de <?php echo $user['pseudo'] ; ?> </legend>
<form id="bouton" method="POST" action="">
<label>Nouveau Pseudo :</label>
<input type="text" name="newpseudo" placeholder="Nouveau Pseudo" size="25" value="<?php echo $user['pseudo'] ; ?>" /> <br>
<label>Nouveau Mots de Passe :</label>
<input type="password" name="newmdp1" placeholder="Nouveau Mots de Passe" size="25"/> <br>
<label>Confirmer le nouveau Mots de Passe :</label>
<input type="password" name='newmdp2' placeholder="Confirmer Mots de Passe" size="25"/> <br>
<label>Nouveau E-mail :</label>
<input type="email" name="newemail" placeholder=" Nouveau E-mail" size="25" value="<?php echo $user['email'] ; ?>"/> <br />
<input type="submit" name="valider" value="Envoyer !" /> <br />
</form>
<?php if(isset($msg)) {echo $msg ;} ?>
<?php if(isset($erreur)) {echo $erreur;} ?>
</fieldset>
Merci ! TheOldNoob Le 26 août 2016 à 23:38 (Édité le 1 janvier 1970 à 01:00)
Pour simplifier, tu peu faire la même requete, que se soit pour la création ou l'update, ainsi pas de problème.
Et du coup, tu peu faire une seule et même requête pour vérifié et l'email et le pseudo, parce que, que se soit lors de la création ou lors de l'édition, il faut vérifié autant les pseudo que les emails.
Du coup, tu fait :
$newpseudo = htmlspecialchars($_POST['pseudo'];
$newmail = htmlspecialchars($_POST['email'];
$req = $bdd->prepare('SELECT email, pseudo WHERE email = ? OR pseudo = ?');
$req->bindValue(1, $newmail);
$req->bindValue(2, $newpseudo);
$req->execut();
if($req->rowCount() != 0){ // Si l'email ou le pseu n'est pas dans la bdd alors, on peu crée l'utilisateur
$errors[] = 'L\'email existe déjà !';
}
Chooper01 Le 26 août 2016 à 23:44 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 26 août 2016 à 23:49 (Édité le 1 janvier 1970 à 01:00)
Je t'envoie vers la doc 😉
http://php.net/manual/fr/pdostatement.bindvalue.php
Tu le met a la place de ton code déjà existant....
$newpseudo = htmlspecialchars($_POST['newpseudo']) ;
$reqpseudo = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ?");
$reqpseudo->execute(array($newepseudo));
$pseudoexist = $reqpseudo->rowcount();
Mais bon, après je code pas du tout comme ça 😀 Chooper01 Le 27 août 2016 à 00:01 (Édité le 27 août 2016 à 00:05)
Il y a juste un soucis avec l'erreur sa ne l'affiche pas ^^
TheOldNoob Le 27 août 2016 à 00:10 (Édité le 1 janvier 1970 à 01:00)
$errors = array(); // contiendra nos éventuelles erreurs
Chooper01 Le 27 août 2016 à 00:14 (Édité le 1 janvier 1970 à 01:00)
mon code :
$erreur = array();
if (isset($_SESSION['id']))
{
$requser = $bdd->prepare("SELECT * FROM membres WHERE id = ? ");
$requser->execute(array($_SESSION['id'])) ;
$user = $requser->fetch() ;
if (isset($_POST['newpseudo']) AND isset($_POST['newemail']) AND !empty($_POST['newpseudo']) AND !empty($_POST['newemail']) AND $_POST['newpseudo'] != $user['pseudo'] AND $_POST['newemail'] != $user['email'])
{
$newpseudo = htmlspecialchars($_POST['newpseudo']) ;
$newemail = htmlspecialchars($_POST['newemail']) ;
$req = $bdd->prepare("SELECT email, pseudo FROM membres WHERE pseudo = ? OR email = ? ");
$req -> bindvalue(1, $newemail) ;
$req -> bindvalue(1, $newpseudo) ;
$req -> execute() ;
if($req->rowCount() != 0)
{
$erreur[]= "Email ou Pseudo déja utilisé ! " ;
}
<?php if(isset($msg)) {echo $msg ;} ?>
<?php if(isset($erreur)) {echo $erreur;} ?>
Chooper01 Le 27 août 2016 à 00:23 (Édité le 1 janvier 1970 à 01:00)
<?php if(isset($erreur)) {echo $erreur;} ?>
TheOldNoob Le 27 août 2016 à 00:49 (Édité le 1 janvier 1970 à 01:00)
<?php if(isset($erreur)) {echo implode('<br>', $erreur);} ?>