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

Résolu
juroco25 Messages postés 10 Statut Membre -  
 Utilisateur anonyme -
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. Utilisateur anonyme
     
    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
    1. juroco25 Messages postés 10 Statut Membre
       
      Je te remercie le père :)
      0
    2. juroco25 Messages postés 10 Statut Membre
       
      Salut le père, mon script ne marche plus, il ne redirige plus vers membre.php même lorsque la condition est vrai
      0
  2. juroco25 Messages postés 10 Statut Membre
     
    // 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 />";

    }
    0
  3. Utilisateur anonyme
     
    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.
    0
  4. juroco25 Messages postés 10 Statut Membre
     
    <?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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    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()); 
    0