Verification d'identifiant php/sql
Résolu/Fermé
tcent
Messages postés
380
Date d'inscription
dimanche 30 novembre 2008
Statut
Membre
Dernière intervention
18 mai 2017
-
12 avril 2010 à 12:09
tcent Messages postés 380 Date d'inscription dimanche 30 novembre 2008 Statut Membre Dernière intervention 18 mai 2017 - 12 avril 2010 à 15:46
tcent Messages postés 380 Date d'inscription dimanche 30 novembre 2008 Statut Membre Dernière intervention 18 mai 2017 - 12 avril 2010 à 15:46
A voir également:
- Impossible de se connecter au serveur de la base de données. vérifiez vos identifiants de connexion (dbpdo)
- Gmail connexion - Guide
- Se connecter à ma boite hotmail - Guide
- Identifiant et mot de passe - Guide
- Comment connecter chromecast à la télé - Guide
- Formules excel de base - Guide
4 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
12 avril 2010 à 15:12
12 avril 2010 à 15:12
Bonjour,
Premier point, il y a une erreur de conception : tel que codé, tu vérifies qu'un compte portant ce nom existe, et qu'un compte ayant ce mot de passe existe. Mais rien n'indique qu'il s'agit des mêmes comptes.
Ce que je te propose, c'est plutôt une requête de ce genre :
SELECT count(*) FROM identification WHERE mdp = $mdp AND identifiant = $identifiant
Deuxième point, pour une comparaison en php on utilise bien le « == ».
Troisième point, mysql_fetch_row renvoie un tableau. Donc quand tu écris $result1 == $_POST['Pseudo'], tu compares le tableau à la valeur POST, et non le résultat de la requête, qui serait $result1[0].
Quatrième point, ton code est ouvert aux attaques par injection sql, car tu envoies directement un champ saisi par l'utilisateur dans ta requête. Pour s'en prémunir, il suffit d'échapper les quotes.
Au final, cela donne un code qui ressemble à ceci :
Voilà !
Xavier
Premier point, il y a une erreur de conception : tel que codé, tu vérifies qu'un compte portant ce nom existe, et qu'un compte ayant ce mot de passe existe. Mais rien n'indique qu'il s'agit des mêmes comptes.
Ce que je te propose, c'est plutôt une requête de ce genre :
SELECT count(*) FROM identification WHERE mdp = $mdp AND identifiant = $identifiant
Deuxième point, pour une comparaison en php on utilise bien le « == ».
Troisième point, mysql_fetch_row renvoie un tableau. Donc quand tu écris $result1 == $_POST['Pseudo'], tu compares le tableau à la valeur POST, et non le résultat de la requête, qui serait $result1[0].
Quatrième point, ton code est ouvert aux attaques par injection sql, car tu envoies directement un champ saisi par l'utilisateur dans ta requête. Pour s'en prémunir, il suffit d'échapper les quotes.
Au final, cela donne un code qui ressemble à ceci :
<? $db_host="127.0.0.1"; $db_user="root"; $db_pass="mot de passe"; $database="loggin"; $link=mysql_connect($db_host,$db_user,$db_pass) or die("Impossible de se connecter à la base de donnée."); mysql_select_db($database) or die("Impossible de selectionner la base de donnée. La base de donnée n'existe pas..."); session_start(); $mdp = mysql_real_escape_string($_POST['Pass']); $identifiant= mysql_real_escape_string($_POST['Pseudo']); $verification=mysql_query("SELECT count(*) FROM identification WHERE mdp = '$mdp' AND identifiant = '$identifiant'") or die(mysql_error()); $resultat=mysql_fetch_row($verification); if( $resultat[0] == 0) { echo "vous n'avez pas de compte"; } else { echo "oui il y a un compte"; } ?>
Voilà !
Xavier
tcent
Messages postés
380
Date d'inscription
dimanche 30 novembre 2008
Statut
Membre
Dernière intervention
18 mai 2017
55
12 avril 2010 à 14:25
12 avril 2010 à 14:25
Personne n'a d'idée?
il y en a pourtant dans tous les sites :(
aidez moi svp
il y en a pourtant dans tous les sites :(
aidez moi svp
Absinthe06
Messages postés
102
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
7 juillet 2010
11
12 avril 2010 à 14:41
12 avril 2010 à 14:41
Sruvol comme ça vite fait, c'est effectivement des "==" et pas des "=" dans le if ;)
tcent
Messages postés
380
Date d'inscription
dimanche 30 novembre 2008
Statut
Membre
Dernière intervention
18 mai 2017
55
12 avril 2010 à 15:46
12 avril 2010 à 15:46
Ca marche!!!!!!!!!!!!!!!
merciiiii Xavier tu es trop fort!!!!!!!!!!
( merci a toi aussi absinthe)
1000merci :):):):)
merciiiii Xavier tu es trop fort!!!!!!!!!!
( merci a toi aussi absinthe)
1000merci :):):):)