Probleme Mysql

Résolu
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!
Configuration: Mac OS X
Firefox 3.0.5

4 réponses

  1. 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
    1. Bonjour,
      c'est sans doute là que le hic est :
      if ($data[0] == 1)

      remplace par
      if (isset($data))
      ou
      if ($data[0]<>"")
      --
      1
      1. Contributeur
        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
        1. 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