Php Mysql identification base de donnée.

Résolu
soulblacksamurai Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -  
soulblacksamurai Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   150
 
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   Statut Membre Dernière intervention   3
 
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   Statut Membre Dernière intervention   80
 
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   Statut Membre Dernière intervention   3
 
Merci a vous deux !
0