Vérification pseudo existant
Fermé
parousky
Messages postés
325
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
20 février 2022
-
15 déc. 2013 à 15:43
torskint - 23 juil. 2015 à 12:13
torskint - 23 juil. 2015 à 12:13
A voir également:
- Vérification pseudo existant
- Pseudo facebook - Guide
- Pseudo whatsapp - Accueil - Messagerie instantanée
- Retrouver son compte epic games avec son pseudo - Forum Jeux vidéo
- Verification lien internet - Guide
- Verification de l'identité du serveur impossible - Forum iPhone
1 réponse
JooS
Messages postés
2468
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2016
228
Modifié par JooS le 15/12/2013 à 19:01
Modifié par JooS le 15/12/2013 à 19:01
Salut,
Je commence avec un exemple :
Entre simple quotes, PHP considère la chaîne comme étant purement du texte.
Entre double quotes, PHP analyse le contenu de la chaîne espérant trouver quelque chose a interpréter.
Donc puisque tu as utiliser un simple quotes, alors ta variable $ps n'est pas interprété comme étant le nom d'une variable, mais est plutôt considéré comme une chaîne de caractère.
Alors la solution est :
Les deux méthodes sont déconseillé car passible d'une injection SQL, c'est possible d'utiliser des fonctions afin d'éviter cela, mais ... puisque tu utilises PDO, c'est vraiment du gâchis de ne pas utiliser les requêtes préparés !
Lorsqu'une requête doit recevoir des paramètres en entrés, on utilise les requêtes préparés afin d'éviter tout danger ...
Exemple d'une requête préparés rapide :
Le reste de ton code est faux, car la variable $req existe dans tout les cas, parce qu'elle retourne un résultat dans tout les cas.
Donc, il faut en premier temps récupérer le résultat, et normalement, puisque le pseudo est unique, alors on attend au plus 1 seul résultat.
Donc :
Mettez en résolu quand c'est résolu -.- ...
Je commence avec un exemple :
$pseudo = 'parousky'; echo '$pseudo'; // Ceci affichera : $pseudo echo "$pseudo"; // Ceci affichera : parousky
Entre simple quotes, PHP considère la chaîne comme étant purement du texte.
Entre double quotes, PHP analyse le contenu de la chaîne espérant trouver quelque chose a interpréter.
Donc puisque tu as utiliser un simple quotes, alors ta variable $ps n'est pas interprété comme étant le nom d'une variable, mais est plutôt considéré comme une chaîne de caractère.
Alors la solution est :
$req = $bdd->query("SELECT pseudo FROM utilisateur WHERE pseudo = '$ps'"); // Ou $req = $bdd->query('SELECT pseudo FROM utilisateur WHERE pseudo = \'' . $ps . '\'');
Les deux méthodes sont déconseillé car passible d'une injection SQL, c'est possible d'utiliser des fonctions afin d'éviter cela, mais ... puisque tu utilises PDO, c'est vraiment du gâchis de ne pas utiliser les requêtes préparés !
Lorsqu'une requête doit recevoir des paramètres en entrés, on utilise les requêtes préparés afin d'éviter tout danger ...
Exemple d'une requête préparés rapide :
$req = $bdd->prepare('SELECT pseudo FROM utilisateur WHERE pseudo = :ps'); $req->execute(array(':ps' => $ps));
Le reste de ton code est faux, car la variable $req existe dans tout les cas, parce qu'elle retourne un résultat dans tout les cas.
Donc, il faut en premier temps récupérer le résultat, et normalement, puisque le pseudo est unique, alors on attend au plus 1 seul résultat.
Donc :
$result = $req->fetch(); if(!empty($result)) { echo "Le pseudo est pris par un autre membre"; } else { echo "Le pseudo n'est pas déjà pris par un autre membre."; }
Mettez en résolu quand c'est résolu -.- ...
23 juil. 2015 à 11:41
23 juil. 2015 à 12:13
<?php
//requêtes
if($req->rowCount()>0){
echo 'pseudo deja pris';
}
else {
echo 'pseudo valide';
}
?>