Erreur lors de la création d'un script d'authentification
Posté : 07 janv. 2010, 12:34
Bonjour,
Je viens vous voir car je suis entrain de créer un script d'authentification mais j'ai un problème qui se pose.
Voilà le code :
Lorsque je clique sur 'connexion', j'ai ce message d'erreur qui s'affiche à l'écran : Notice: Undefined variable: echo_mdp in D:\wamp\www\xxx\test.php on line 45
Cependant, le reste de la page s'affiche bien et j'ai bien les messages d'erreurs pour l'utilisateur qui s'affichent.
J'ai tenté de régler le problème en ajoutant en début de script :
$echo_mdp = ' '; (L'erreur "Notice..." ne s'affiche plus, mais les messages pour l'utilisateur non plus !)
$echo_mdp = null; (Pareil qu'au dessus)
J'ai également tenter d'intégrer ces lignes dans la fonction vérification :
J'ai bien ajouté $mdp_querry entre les parenthèses de la fonction, mais cela me retourne deux erreurs :
Notice: Undefined variable: echo_mdp in D:\wamp\www\xxx\test.php on line 45
Notice: Undefined variable: mdp_querry in D:\wamp\www\xxx\test.php on line 45
Là, je suis un peu perdu, c'est pour ça que je demande votre aide.
Merci et bonne année 2010 !
Je viens vous voir car je suis entrain de créer un script d'authentification mais j'ai un problème qui se pose.
Voilà le code :
Code : Tout sélectionner
<?php
session_start();
$erreur = null;
if(isset($_POST['auth_pseudo']) && isset($_POST['auth_mdp'])){
$host = "localhost";
$login = "Jean";
$mdp = "";
$bdd = "";
$co_serv = mysql_connect($host,$login,$mdp);
$co_bdd = mysql_select_db($bdd);
if(!$co_serv || !$co_bdd){
$erreur = 'Connexion au serveur distant impossible';
}
$pseudo = mysql_real_escape_string($_POST['auth_pseudo']);
$motdepasse = sha1($_POST['auth_mdp']);
$mdp_querry = mysql_query('SELECT mdp FROM membre WHERE pseudo="'.$pseudo.'"');
if(mysql_num_rows($mdp_querry)){
$echo_mdp = mysql_result($mdp_querry,0);
}
function verification(&$erreur,$pseudo,$motdepasse,$echo_mdp){
if(empty($pseudo) || empty($motdepasse)){
$erreur = 'Un ou plusieurs champs du formulaire sont vides';
return false;
}
elseif($echo_mdp == 0){
$erreur = 'Mauvais pseudo';
return false;
}
elseif($echo_mdp != $motdepasse){
$erreur = 'Mauvais mot de passe';
return false;
}
else{
return true;
}
}
$verif = verification($erreur,$pseudo,$motdepasse,$echo_mdp);
if($verif){
$sessionpseudo = $_SESSION['pseudo'];
if(isset($_POST['checkbox'])){
setcookie("cookiepseudo",$pseudo,time()+60*60*24*365*100);
setcookie("cookiemdp",$motdepasse,time()+60*60*24*365*100);
}
else{
setcookie("cookiepseudo","",time()-60*24,"/");
setcookie("cookiemdp","",time()-60*24,"/");
}
header('Location: test.php');
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Index</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
</head>
<body>
<div id="corp"> <!-- Corp de la page -->
<div id="banniere"> <!-- Bannière de la page -->
</div>
<div id="menu"> <!-- Menu horizontal -->
<ul id="onglets"> <!-- Menu horizontal de la page -->
<li class="arrondi"><a href="index.php">Accueil</a></li>
<li><a href="astuces.php">Exposez !</a></li>
<li><a href="forum/index.php">Forum</a></li>
</ul>
</div>
</div>
</body>
</html>
<?php
if(!isset($_SESSION['pseudo'])){
?>
<div id="connexion"> <!-- Espace connection de la page -->
<span class="titreconnexion">C'est qui ?</span>
<form method="post">
<label for="auth_pseudo" style="font:14px calibri" maxlength="16" >Pseudo : <br/></label>
<input type="text" name="auth_pseudo" /><br /><br />
<label for="auth_mdp" style="font:14px calibri">Mot de passe : <br /></label>
<input type="password" name="auth_mdp" /><br />
<a href="#" style="font:11px calibri; text-decoration:none; color:#000;" >Mot de passe oublié ?</a><br /><br/>
<input type="checkbox" name="checkbox" />
<label for="checkbox" style="font:14px calibri"> Se souvenir de moi. <br/><br/></label>
<input type="submit" name="submit" Value="Connexion" /><br /><br/>
<a href="inscription.php" style="font:14px calibri; text-decoration:none; color:#FF9600;"><u>Pas encore inscrit ?</u></a>
<?php
if($erreur != ''){
echo '<span class="erreur">'.$erreur.'</span>';
}
?>
</form>
</div>
<?php
}
else{
echo 'Ca fonctionne';
}
?>Cependant, le reste de la page s'affiche bien et j'ai bien les messages d'erreurs pour l'utilisateur qui s'affichent.
J'ai tenté de régler le problème en ajoutant en début de script :
$echo_mdp = ' '; (L'erreur "Notice..." ne s'affiche plus, mais les messages pour l'utilisateur non plus !)
$echo_mdp = null; (Pareil qu'au dessus)
J'ai également tenter d'intégrer ces lignes dans la fonction vérification :
Code : Tout sélectionner
$mdp_querry = mysql_query('SELECT mdp FROM membre WHERE pseudo="'.$pseudo.'"');
if(mysql_num_rows($mdp_querry)){
$echo_mdp = mysql_result($mdp_querry,0);
}Notice: Undefined variable: echo_mdp in D:\wamp\www\xxx\test.php on line 45
Notice: Undefined variable: mdp_querry in D:\wamp\www\xxx\test.php on line 45
Là, je suis un peu perdu, c'est pour ça que je demande votre aide.
Merci et bonne année 2010 !