Problème dans un script de connexion en PHP/MySQL
Résolu
juroco25
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
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)
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)
A voir également:
- Problème dans un script de connexion en PHP/MySQL
- Gmail connexion - Guide
- Script vidéo youtube - Guide
- D'où peut venir un problème de connexion internet sur un ordinateur ? - Guide
- Connexion chromecast - Guide
- Gmail connexion autre compte - Guide
5 réponses
Bonjour
Ce test :
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==""){
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==""){
juroco25
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
Je te remercie le père :)
juroco25
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
Salut le père, mon script ne marche plus, il ne redirige plus vers membre.php même lorsque la condition est vrai
// 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 />";
}
$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 />";
}
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.
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.
<?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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 :
À 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());