Identification : verif email mdp php
Julien
-
Gremy87 Messages postés 352 Date d'inscription Statut Membre Dernière intervention -
Gremy87 Messages postés 352 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débute en php et j'essaye de faire un espace membre la je galere un peu...
J'ai l'erreur Notice: Undefined variable: nbmail je comprend pas pourquoi en fait je doit me tromper sur ca $nbmail=mysql_num_rows($resmdp); il doit y avoir un truc que je ne connais pas. Puis il doit y avoir d'autre erreur mais pour l'instant j'ai que celle-ci!
Merci d'avance pour votre aide et bonne journée!
<?php
include ('../php/connexbdd.php');
if(isset($_POST['mail']) && !empty($_POST['mail']) && !empty($_POST['mdp']))
{
$reqmdp="SELECT mdp
FROM membres
WHERE membres.mail='".$_POST['mail']."'";
$resmdp=mysql_query($reqmdp) or die(mysql_error());
$nbmail=mysql_num_rows($resmdp);
$ligmdp=mysql_fetch_array($resmdp);
}
if($nbmail==0)
{?>
<body onLoad="javascript:alert('L'adresse mail n'existe pas!');">
<?php
}
else if($_POST['mdp']==$ligmdp[0])
{
$_SESSION['motdepasse']=$_POST['mdp'];
$_SESSION['email']=$_POST['mail'];
}
else
{
?>
<body onLoad="javascript:alert('Le mot de passe erroné!');">
<?php
header("Location: ../html/info_membre.php");
mysql_close($connex);
}
?>
Je débute en php et j'essaye de faire un espace membre la je galere un peu...
J'ai l'erreur Notice: Undefined variable: nbmail je comprend pas pourquoi en fait je doit me tromper sur ca $nbmail=mysql_num_rows($resmdp); il doit y avoir un truc que je ne connais pas. Puis il doit y avoir d'autre erreur mais pour l'instant j'ai que celle-ci!
Merci d'avance pour votre aide et bonne journée!
<?php
include ('../php/connexbdd.php');
if(isset($_POST['mail']) && !empty($_POST['mail']) && !empty($_POST['mdp']))
{
$reqmdp="SELECT mdp
FROM membres
WHERE membres.mail='".$_POST['mail']."'";
$resmdp=mysql_query($reqmdp) or die(mysql_error());
$nbmail=mysql_num_rows($resmdp);
$ligmdp=mysql_fetch_array($resmdp);
}
if($nbmail==0)
{?>
<body onLoad="javascript:alert('L'adresse mail n'existe pas!');">
<?php
}
else if($_POST['mdp']==$ligmdp[0])
{
$_SESSION['motdepasse']=$_POST['mdp'];
$_SESSION['email']=$_POST['mail'];
}
else
{
?>
<body onLoad="javascript:alert('Le mot de passe erroné!');">
<?php
header("Location: ../html/info_membre.php");
mysql_close($connex);
}
?>
A voir également:
- Identification : verif email mdp php
- Entrer les informations d'identification reseau - Guide
- Supprimer identification instagram - Guide
- Identification instagram - Guide
- Intel processor identification utility - Télécharger - Informations & Diagnostic
- Ethernet identification ✓ - Forum Réseau
5 réponses
Bonjour,
tout d'abors lorsque tu as une erreur près d'une requete, le reflexe à avoir est d'afficher la requete et la tester dans ton gestionnaire de base de données (phpmyadmin par exemple). tu veras si ta requete est bien écrite, si elle te renvoi des lignes ou non et tu partira donc sur des bases saines.
si tout est bon coté requete, c'est surement quetu ne passe pas dans ton premier "if" donc il ne te fais pas la requete et surtout il ne crée pas ta variable $nbmail mais passe a la suite et la tu lui demande "if($nbmail==0)"
sauf que a ce moment la il ne connait pas $nbmail parce qu'il n'est pas passé dans le 1er if
voila regarde de ce coté la ^^
bonne journée
tout d'abors lorsque tu as une erreur près d'une requete, le reflexe à avoir est d'afficher la requete et la tester dans ton gestionnaire de base de données (phpmyadmin par exemple). tu veras si ta requete est bien écrite, si elle te renvoi des lignes ou non et tu partira donc sur des bases saines.
si tout est bon coté requete, c'est surement quetu ne passe pas dans ton premier "if" donc il ne te fais pas la requete et surtout il ne crée pas ta variable $nbmail mais passe a la suite et la tu lui demande "if($nbmail==0)"
sauf que a ce moment la il ne connait pas $nbmail parce qu'il n'est pas passé dans le 1er if
voila regarde de ce coté la ^^
bonne journée
Ah oui effectivement ca va poser probleme si autour de ton code php tu ne vérifie pas que le formulaire a été précedement remplie avec un simple
if (isset($_POST['mail']) && isset($_POST['mdp']))
{
//tout le code de traitement de ton formulaire
}
le 1er probleme est résolu? il me semble que si un des champs n'est pas remplis tu as toujours ton erreur sur le $nbmail vu qu'il ne crée pas la variable.
if (isset($_POST['mail']) && isset($_POST['mdp']))
{
//tout le code de traitement de ton formulaire
}
le 1er probleme est résolu? il me semble que si un des champs n'est pas remplis tu as toujours ton erreur sur le $nbmail vu qu'il ne crée pas la variable.
Pour une question de sécurité on ne "dé-hash" jamais un mot de passe. tu hash en md5 celui entré et tu le compare a celui de ta BDD ;)
edit: tu pourrais poster de nouveau ton code corrigé stp si tu as toujours des soucis que je vois ce que ca donne avec les modifs ;)
RISE OF THE GEEK IS COMMING SOON!!! BWAHAHAHAHA
edit: tu pourrais poster de nouveau ton code corrigé stp si tu as toujours des soucis que je vois ce que ca donne avec les modifs ;)
RISE OF THE GEEK IS COMMING SOON!!! BWAHAHAHAHA
J'en suis la par contre chose bizarre le mot de passe quand je met le bon ca correspond jamais.
if (isset($_POST['mail']) && isset($_POST['mdp']))
{
$reqmdp="SELECT mdp
FROM membres
WHERE membres.mail='".$_POST['mail']."'";
mysql_error();
$resmdp=mysql_query($reqmdp) or die(mysql_error());
$nbmail=mysql_num_rows($resmdp);
$ligmdp=mysql_fetch_array($resmdp);
echo $ligmdp[0];
echo "=";
echo $pass;
$pass = md5($_POST['mdp']);
if($nbmail==0)
{?>
<body onLoad="javascript:alert('L'adresse mail n'existe pas!');">
<?php
}
else if($pass==$ligmdp[0])
{
$_SESSION['motdepasse']=$_POST['mdp'];
$_SESSION['email']=$_POST['mail'];
//$_SESSION['nom']=
//$_SESSION['prenom']=
//header("Location: ../html/info_membre.php");
}
else
{
?>
<body onLoad="javascript:alert('Le mot de passe erroné!');">
<?php
mysql_close($connex);
}
}
?>
if (isset($_POST['mail']) && isset($_POST['mdp']))
{
$reqmdp="SELECT mdp
FROM membres
WHERE membres.mail='".$_POST['mail']."'";
mysql_error();
$resmdp=mysql_query($reqmdp) or die(mysql_error());
$nbmail=mysql_num_rows($resmdp);
$ligmdp=mysql_fetch_array($resmdp);
echo $ligmdp[0];
echo "=";
echo $pass;
$pass = md5($_POST['mdp']);
if($nbmail==0)
{?>
<body onLoad="javascript:alert('L'adresse mail n'existe pas!');">
<?php
}
else if($pass==$ligmdp[0])
{
$_SESSION['motdepasse']=$_POST['mdp'];
$_SESSION['email']=$_POST['mail'];
//$_SESSION['nom']=
//$_SESSION['prenom']=
//header("Location: ../html/info_membre.php");
}
else
{
?>
<body onLoad="javascript:alert('Le mot de passe erroné!');">
<?php
mysql_close($connex);
}
}
?>
ok, alors voyons voir.
ton $pass crypté ne correspond jamais a ton $ligmdp[0]?
c'est pas normal, vérifie la valeur qui est en bdd.
ensuite mettre le mot de passe en clair en variable de session d'une part ca ne va pas te servir a grand chose et niveau sécurité c'est bof bof.
sinon le reste m'as l air correct.
il te reste des soucis a part cette histoire de mdp qui correspond pas?
ton $pass crypté ne correspond jamais a ton $ligmdp[0]?
c'est pas normal, vérifie la valeur qui est en bdd.
ensuite mettre le mot de passe en clair en variable de session d'une part ca ne va pas te servir a grand chose et niveau sécurité c'est bof bof.
sinon le reste m'as l air correct.
il te reste des soucis a part cette histoire de mdp qui correspond pas?
C'est bizarre le mdp j'ai essayé de le mettre en clair dans la base ca marche en crypté il a un problème par exemple si je met "q" comme mdp le echo renvoi 7694f4a66316e53=7694f4a66316e53c8cdd9d9954bd611d ca commence pareil mais le mdp récupéré dans la base renvoi des caractères en plus! J'ai vu une fonction mysql_escape_string ou unescaped_string mais il n'y a pas de caractere spéciaux donc je sais pas trop. Aprés tout le reste est bon.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ne cherche plus ^^
erreur simple mais que l'on oublie souvent de vérifier...
vérifie la longueur de ton champ BDD tu dois avoir un varchar(15) sauf qu un mdp hashé en md5 ca fait un peu plus de 15 caractères donc il tronque le tout et te dis rien ^^ mais tu perd la moitié du mdp!
halalala les joies de la programmation ;)
erreur simple mais que l'on oublie souvent de vérifier...
vérifie la longueur de ton champ BDD tu dois avoir un varchar(15) sauf qu un mdp hashé en md5 ca fait un peu plus de 15 caractères donc il tronque le tout et te dis rien ^^ mais tu perd la moitié du mdp!
halalala les joies de la programmation ;)
<form onsubmit="return(VerifForm(this))" action="../html/connec.php" method="post" enctype="application/x-www-form-urlencoded" name="connexion">
<table>
<tr>
<td>
<input name="mail" type="text" size="15" value="mail" ""onFocus="if(this.value=='Email')this.value='<?php if (isset($_POST['mail'])) echo htmlentities(trim($_POST['mail'])); ?>'" onBlur="javascript:if(this.value=='')this.value='Email';}">
</td>
<td>
<input name="mdp" type="text" size="15" value="Mot de passe" onFocus="javascript:if(this.value=='Mot de passe'){this.type='password'; this.value='<?php if (isset($_POST['mdp'])) echo htmlentities(trim($_POST['mdp'])); ?>';}" onBlur="javascript:if(this.value==''){this.type='text'; this.value='Mot de passe';}"
</td>
<td>
<input name="connexion" value="connexion" type="image" src='../Images/menu/bouton-ok.png' align="bottom" />
</td>
<td>
<a href="inscritption.php">S'inscrire</a>
</td>
</tr>
</table>
</form>