Problème dans un script de connexion en PHP/MySQL

Résolu
Bonjour,

Voilà les amis, j'ai un petit soucie dans un script de connexion.

SELECT valid FROM user WHERE login = 'moi@me.com' AND mdp = 'groscanardvert';

Voici ma requete. Lorsque je la rentre dans phpmyadmin, il me retourne que valid = 0 (jusque là je comprend).

Voici mon script de connexion:

<?php

session_start();

include('connect.php');

$MAIL=$_POST['user'];
$MDP=$_POST['pwd'];

//Verification Champs de Saisie
if(($MAIL=="")||($MDP=="")||(($MAIL=="")&&($MDP==""))){

header('location: index.html');

}else{

//Encodage MD5
$mdp=md5($MDP);

//Verification User
$user= 0; //l'utilisateur n'est pas connecté
$req1="SELECT valid FROM user WHERE login = '$MAIL' AND mdp = '$mdp';";
//print($req1);
$info1=mysql_query($req1);
$all=mysql_fetch_row($info1);

if($all[0] > 0) $user=1;
if($user=1){

$_SESSION['user']=$MAIL;

header('location: membre.php');

}else{

header('location: index.html');

}

}

?>

Vous êtes d'accord si je vous dis que logiquement, si valid = 0, je suis pas censé pouvoir me connecter?

Je vous remercie par avance de vos réponses et conseils.

Cordialement,

Moi. (un peu d'humour :D)

5 réponses

  1. C'est normal qu'il n'y ait pas de redirection, tu as mis les lignes correspondantes en commentaire !

    À part ça, je ne vois pas d'erreur évidente. Pour voir s'il n'y a pas un problème du côté de mysql, il faut lui demander d'afficher les erreurs :
    $info1=mysql_query($req1) or die (mysql_error()); 
    $all=mysql_fetch_row($info1) or die (mysql_error()); 
    1. <?php

      session_start();

      include('connect.php');

      $MAIL=$_POST['user'];
      $MDP=$_POST['pwd'];

      //Verification Champs de Saisie
      if(($MAIL=="")||($MDP=="")){

      header('location: index.html');

      }else{

      //Encodage MD5
      $mdp=md5($MDP);

      //Verification User
      $user= 0; //l'utilisateur n'est pas connecté
      $req1="SELECT valid FROM user WHERE login = '$MAIL' AND mdp = '$mdp';";
      //print($req1);
      $info1=mysql_query($req1);
      $all=mysql_fetch_row($info1);

      if($all[0] > 0) $user==1;

      //if($user==1){

      // $_SESSION['user']=$MAIL;

      //header('location: membre.php');

      //}else{

      //header('location: index.html');

      //}

      }

      ?>

      le voici
      1. Peux-tu donner le script tel qu'il est maintenant ?

        Par ailleurs, l'instruction if($all[0] > 0) va provoquer une erreur si on ne donne pas un login et un mot de passe corrects. La requête rendra un résultat vide, et le mysql_fetch_row rendra false et non pas un tableau, donc $all[0] ne sera pas défini.
        1. // Récupération du champs
          $rech=$_POST['rech'];

          //Admin?
          $admin=0; //ce n'est pas un admin
          $r="SELECT valid FROM user WHERE login ='".$_SESSION['user']."';";
          $res=mysql_query($r);
          $val=mysql_fetch_row($res);
          if($val[0] == 100) $admin=1;

          // Requête d'affichage liste
          $q="SELECT IDUser, nom, prenom, lienphoto, valid FROM user WHERE nom like '".$rech."%' OR prenom like '".$rech."%';";
          $info=mysql_query($q);
          while($list=mysql_fetch_row($info)){
          echo "<a href='affichefiche.php?id=".$list[0]."'><p><img src='$list[3]' width='60' height='60' alt='' />".$list[2]." ".$list[1]."</a></p>";
          if($admin=1){
          echo"<a href=''>Supprimer</a> <a href=''>Modifier</a>";
          }
          echo "<br />";

          }
          1. Bonjour
            Ce test :
            if($user=1){ 
            est toujours vrai car ce n'est pas une comparaison. Il fallait écrire :
            if($user==1){ 


            D'autre part (mais ça n'empêche pas le fonctionnement) ton test
            if(($MAIL=="")||($MDP=="")||(($MAIL=="")&&($MDP==""))){
            est farfelu, car le cas (($MAIL=="")&&($MDP=="")) est déjà inclus dans les deux précédents : pas besoin de le rappeler, il suffisait d'écrire
            if( $MAIL=="" || $MDP==""){
            1. Je te remercie le père :)
            2. Salut le père, mon script ne marche plus, il ne redirige plus vers membre.php même lorsque la condition est vrai