Php Mysql identification base de donnée.

Résolu/Fermé
soulblacksamurai Messages postés 63 Date d'inscription dimanche 29 mai 2011 Statut Membre Dernière intervention 13 avril 2014 - 5 nov. 2011 à 23:20
soulblacksamurai Messages postés 63 Date d'inscription dimanche 29 mai 2011 Statut Membre Dernière intervention 13 avril 2014 - 6 nov. 2011 à 11:57
Bonjour,
J'ai rédigé le code suivant :
<?php
include("bddconnect.php");
mysql_select_db($database) or die("erreur de connexion a la base de donnees");
$query='SELECT * FROM identifiant';
$ok=mysql_query($query);
$row=mysql_fetch_row($ok) or die (mysql_error());
if($_POST['username']!=$row[1] or $_POST['password']!=$row[2])
{
echo "Echec de la connexion";
}
else
{
echo "Connexion reussi";
}

mysql_close();
?>

Il fonctionne mais seulement pour le premier identifiant de la base de donnée.....(il n'y en a que 2)
Aucune erreur ne s'affiche.
(Et aussi pouvez me dire si ce code est protégé contre les injections sql ? J'en ai testé et apparament ça semble bon.)
Merci de vos future réponse.
A voir également:

4 réponses

Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
6 nov. 2011 à 01:18
Salut,

Peux-tu m'expliquer comment tu as fait pour tester une injection sql alors qu'il n'y a pas de variable appeler dans la requête ?

Le seul moyen d'exploiter une faille serai qu'il y ai déjà du code dans la BDD.
0
soulblacksamurai Messages postés 63 Date d'inscription dimanche 29 mai 2011 Statut Membre Dernière intervention 13 avril 2014 3
6 nov. 2011 à 10:59
Merci de ta réponse.

Il y a déjà du code dans la base de donné (enfin je crois). Je l'insère directement avec le phpmyadmin de wamp.(mais c'est peut etre pas ça dont tu parles...)

En tout cas la base de donné database contien une table identifiant de 3 colonne id username et password qui ont des valeurs : par exemple le premier c'est id=1 username=lalala password=lilili.

Mais sinon t'as une explication pour le premier problème ?.
0
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
6 nov. 2011 à 11:41
Alors le problème est tres simple

'SELECT * FROM identifiant'; 

cette requete recupere tous tes identifiant dans la base

$row=mysql_fetch_row($ok) or die (mysql_error()); 

mais cette ligne ne recupere que le premier enregistrement

ce que tu dois faire, c'est faire un select sur le username
$query="SELECT password FROM identifiant WHERE username = '".$_POST['username']."'"; 

pour info, cete requete n'est pas protégé

ensuite tu peux tester comme ceci :

$ok=mysql_query($query); 
$row=mysql_fetch_row($ok) or die (mysql_error());
if($_POST['password']!=$row['password'])
{
echo "Echec de la connexion";
}
else
{
echo "Connexion reussi";
} 


maintenant si tu veux protéger les données , je te conseille d'utiliser des requete préparée avec pdo

https://www.php.net/manual/fr/book.pdo.php
0
soulblacksamurai Messages postés 63 Date d'inscription dimanche 29 mai 2011 Statut Membre Dernière intervention 13 avril 2014 3
6 nov. 2011 à 11:57
Merci a vous deux !
0