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

Résolu/Fermé
juroco25 Messages postés 9 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 11 juin 2013 - Modifié par krazykat le 29/05/2013 à 15:22
 Utilisateur anonyme - 30 mai 2013 à 09:25
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

Utilisateur anonyme
29 mai 2013 à 13:53
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
juroco25 Messages postés 9 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 11 juin 2013
29 mai 2013 à 15:21
Je te remercie le père :)
0
juroco25 Messages postés 9 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 11 juin 2013
29 mai 2013 à 22:44
Salut le père, mon script ne marche plus, il ne redirige plus vers membre.php même lorsque la condition est vrai
0
juroco25 Messages postés 9 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 11 juin 2013
29 mai 2013 à 15:25
// 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
Utilisateur anonyme
30 mai 2013 à 00:02
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
juroco25 Messages postés 9 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 11 juin 2013
30 mai 2013 à 00:24
<?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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
30 mai 2013 à 09:25
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