Probleme Mysql

Résolu
salimdrame Messages postés 71 Statut Membre -  
salimdrame Messages postés 71 Statut Membre -
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. pitxu Messages postés 708 Statut Membre 95
     
    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
  2. giheller
     
    Bonjour,
    c'est sans doute là que le hic est :
    if ($data[0] == 1)

    remplace par
    if (isset($data))
    ou
    if ($data[0]<>"")
    --
    1
  3. bissdebrazza Messages postés 2886 Statut Contributeur 712
     
    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
  4. salimdrame Messages postés 71 Statut Membre 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