Probleme Mysql

Résolu/Fermé
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 - 29 déc. 2008 à 11:08
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 - 29 déc. 2008 à 11:30
Bonjour,
En fait j'ai un bout de code qui vérifie si les données login et MDP correspondent à celles inscrites dans la BDD que voici :

********************************************************
$hostname='****';
$username='****';
$password='****';
$dbname='****';
$usertable='****';

mysql_connect($hostname,$username, $password) OR DIE ('Unable to connect to database! Please try again later.');
mysql_select_db($dbname);


// on teste si une entrée de la base contient ce couple login / pass
$sql = mysql_query("SELECT * FROM **** WHERE login='$login' AND mdp='$pass';")
OR DIE('Erreur SQL !<br />'. $sql .'<br />'.mysql_error());
$data = mysql_fetch_array($sql);

mysql_free_result($sql);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1)
{
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: accueil.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
else
{
$erreur = 'Compte non reconnu ou session expirée. Reconnectez-vous!';
}

********************************************************

Mon problème est que ce code ne reconnait que l'entrée située à l'id numéro 1 dans la BDD mais m'affiche une erreur pour toutes les autres connexions qui sont pourtant correctes.
Je vous serais reconnaissant de m'apporter un bout de réponse à mon problème.
Merci d'avance!

4 réponses

pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
29 déc. 2008 à 11:14
bonjour,

c'est normal, ton code :

if ($data[0] == 1) // $data[0] c'est ton id et tu vérifies qu'il soit égal à 1

remplace :

$data = mysql_fetch_array($sql);

par

$data = mysql_fetch_assoc($sql);

et

if ($data[0] == 1)

par

if ($data!="")

;)
1
Utilisateur anonyme
29 déc. 2008 à 11:18
Bonjour,
c'est sans doute là que le hic est :
if ($data[0] == 1)

remplace par
if (isset($data))
ou
if ($data[0]<>"")
--
1
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
29 déc. 2008 à 11:20
salut!

essai ca!

********************************************************
$hostname='****';
$username='****';
$password='****';
$dbname='****';
$usertable='****';

mysql_connect($hostname,$username, $password) OR DIE ('Unable to connect to database! Please try again later.');
mysql_select_db($dbname);


// on teste si une entrée de la base contient ce couple login / pass
$sql = mysql_query("SELECT * FROM **** WHERE login='$login' AND mdp='$pass';")
OR DIE('Erreur SQL !<br />'. $sql .'<br />'.mysql_error());
$data = mysql_fetch_array($sql);

mysql_free_result($sql);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1)
{
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: accueil.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
else($data[0] == 0){

$erreur = 'Compte non reconnu ou session expirée. Reconnectez-vous!';
}


-
«Il faut avoir déjà beaucoup appris de choses pour savoir demander ce qu'on ne sait pas.»
Jean-Jacques ROUSSEAU
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
29 déc. 2008 à 11:30
Je vous remercie les gars. Toutes vos réponses m'ont permis d'en savoir un peu plus sur la chose. J'ai suivi vos conseils et j'y suis arrivé. A bientôt
0