Bonjours,
je souhaiterais retourner une erreur si un nom d'utilisateur est déjà pris, mais je ne sais pas trop comment mis prendre :s
Pouvez vous m'éclairer? :D

if(($_POST'pseudo'] == ??? )){
        $error_pseudo_identique = 'Pseudo déja pris!';
    }

J'utilise le Le tuto permissions de grafikart fusionné avec Le tuto espace membre de créatiq, donc tout en PDO.

4 réponses


neocorp
Auteur
Réponse acceptée

J'ai trouvé !!!!!

$pseudo= addslashes($_POST'pseudo']);
    $req = $PDO->query("SELECT pseudo FROM utilisateurs WHERE pseudo='$pseudo'");
    $chk_pseudo = $req->fetch(PDO::FETCH_ASSOC);
    if(!empty($_POST) && $chk_pseudo == '1' || $chk_pseudo > '1')
    {
        $error_pseudo_identique = 'Ce pseudo existe déjà !';
    }else{ $error_pseudo_identique = 'Ce pseudo est disponible!';}

Et je fais une version ajax maintenant :D, et en PDO !!! merci quand même Guilhem, mais comme je l'ai déjà dis, je me concentre sur du FULL PDO
Merci quand même de votre aide ;)

Salut il faut faire une requete SQL pour compter le nombre d'utilisateur qui ont le pseudo que tu veut tester (:s). Un exemple

$sql = 'SELECT COUNT(*) FROM table_utilisateurs WHERE pseudo_utilisateur="'.$_POST'pseudo_formulaire'].'" ';
$req = mysql_query($sql) or die(mysql_error() );
$exist = mysql_result($req, 0);
if ($exist >= 1) {
echo 'Ce pseudo existe déjà !'; 
}
neocorp
Auteur

Merci de ta réponse, mais je crée un site entièrement sous PDO et non Mysql/Mysqli pour plus de portabilité dans l'avenir et vue que je suis débutant, j'essais d'apprendre directement le fonctionnement pdo, grossierement ton code version PDO cela donnerai ça

$pseudo = addslashes($_POST'pseudo']);
$q2 = array('pseudo'=>$pseudo);
    $sql = 'SELECT * FROM `utilisateurs` WHERE pseudo= :pseudo ';
    $req2 = $PDO->prepare($sql);
    $req2->execute($q2);
    if ($req2->rowCount() == 1){ $error_pseudo_identique = "Ce pseudo existe déjà !"; }

mais cela ne fonctionne pas :S, cela ne produit aucune erreur, mais cela n'affiche pas le message voulu, si t'as une idée?

Issue du script de l'espace membre de supportduweb.com

$dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"'));
if($dn=0){ajout dans base}else{username déjà pris}

C'est comme wYm propose mais en plus simple je pense.