Vérifier l'existence d'un utilisateur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Vérifier l'existence d'un utilisateur

par Flo86 » 05 août 2005, 15:29

Merci à vous deux ! :) Ca fonctionne !!!

par raptor » 05 août 2005, 15:28

le ['login'] n'est pas non plus à mettre ;)

par Cyrano » 05 août 2005, 15:07

if($row['login'] == 1)
Enlève les guillemets autour du 1 sinon le nombre sera traité en chaine de caractère et la comparaison retournera FALSE.

par raptor » 05 août 2005, 15:03

if($row==1)
@++

par Invité » 05 août 2005, 14:52

Désolé, à la 4ème ligne il fallait lire
if($row['login']=="1") 

par Flo86 » 05 août 2005, 14:48

J'ai donc essayé ça :
<?$sql = "SELECT login FROM ma_table WHERE name='".$_POST['login']."'";
$result = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$row = mysql_num_rows($result);
if($row['name']=="1")
{
echo "NON!";
exit;
}
?>
Mais ça ne marche pas... Pas d'erreur SQL, rien ! Et pourtant j'essaye avec un nom qui est dans la base...

(Je précise bien évidement que la connexion est ouverte ^^)[/code]

par raptor » 05 août 2005, 14:38

Ca résoud le probleme d'une certaine manière ;)

par Invité » 05 août 2005, 14:35

mdr merci, les magic_quotes sont activés de toute façon (je suis en mutualisé)

par raptor » 05 août 2005, 14:32

le bon vieux addslashes() ^^

par matt_m » 05 août 2005, 14:26

ne pas oublier les ' quand on verifie une égalité avec une chaine
et aussi et surtout ne pas faire confiance a ce qui provient de l'utilisateur
si dans la requete

Code : Tout sélectionner

"SELECT login FROM ma_base WHERE login = '".$_POST['login']."'";
$_POST['login'] contient

Code : Tout sélectionner

admin' OR 1 IS NOT NULL;#
alors ta requete devient:

Code : Tout sélectionner

SELECT login FROM ma_base WHERE login = 'admin' OR 1 IS NOT NULL;#'
ce qui te retournera le premier enregistrement qui sera dans 95 % des cas celui de l'admin...

verifiez toujours les données (provenant des utilisateurs)...

par NoNos » 05 août 2005, 14:06

C'est vrai j'ai taper sa vite fait donc j'assume l'entière responsabilité de mon erreur

par raptor » 05 août 2005, 13:57

ne pas oublier les ' quand on verifie une égalité avec une chaine

par NoNos » 05 août 2005, 13:38

Une requete du genre

Code : Tout sélectionner

SELECT login FROM ma_base WHERE login = $_POST[login]
Ensuite tu compte le nombre de resultat, si il y en a 1 tu rejette sinon c'est ok

par Flo86 » 05 août 2005, 13:13

Re-bonjour, et merci pour votre aide, c'est vrai que mon premier message n'est pas vraiment clair.
Donc, en fait, j'ai un formulaire qui permet de publier des articles : les membres peuvent bien entendu poster, mais les non-membres aussi.
$_POST['pseudo'], c'est le pseudo avec lequel l'utilisateur envoie l'article... Dans ce cas, le membre n'est pas connecté en tant que membre (car sinon, une session est ouverte, et l'utilisateur n'a pas besoin d'entrer son pseudo...).
Sur la page de validation de l'article, j'aimerais vérifier que cet utilisateur qui n'est pas connecté, ne pose pas avec le pseudo d'un membre...
"login", c'est le nom du champ "ma_table" qui contient tous les membres du site,
J'aimerais donc vérifer que $_POST['pseudo'] soit différent de tous les "login" avant de pouvoir poursuivre la publication de l'article...

En espérant avoir été plus clair :)

par Cyrano » 05 août 2005, 07:45

J'ajouterais que si tu veux éviter l'usurpation d'identité, un mot de passe serait utile en plus du pseudonyme.