[PHP] Pb Session avec mot de passe

otherwise01 -  
 otherwise01@hotmail.com -
Bonjour à tous,

Je viens de créer un petit formulaire en html / php. Je souhaite afficher "ok" si le mot de passe saisi est correct ou "Error" s'il n'est pas exacte.


Je ne comprends pas pourquoi mon code ne fonctionne pas. Que je rentre le bon mot de passe ou un autre:

Voici ma page login.html

<!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>Se loguer</title>
</head>

<body>

<form action="login.php" method='post'>
<table align="center" border="0">
<tr>
<td>Login :</td>
<td><input type="text" name="login" maxlength="250"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password"name="pass" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="log in"></td>
</tr>
</table>
</form>

</body>
</html>



et ma page login.php


<?php

$mdp = '1234';
mysql_connect("adresse","login","motdepasse");
mysql_select_db("nomdematable");


if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);


if($data['pwd'] != $mdp) {
echo '<p>Error</p>';
include('login.html');

exit;
}

else {
echo '<p>ok</p>';
exit;
}
}
?>
A voir également:

2 réponses

Voya 59
 
Lu,


A mon avis ca vient de là:

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);


if($data['pwd'] != $mdp) {
echo '<p>Error</p>';
include('login.html');

exit;
}

else {
echo '<p>ok</p>';
exit;
}
}



La condition n'est pas assez claire à mon gout:



if(isset($_POST['login']) && isset($_POST['pass']))
{

if($_POST['pass'] != $mdp || $_POST['login'] != $log )
{
echo '<p>Error</p>';
include('login.html');
exit;
}
else
{
echo '<p>ok</p>';
exit;
}

}




De cette manière ça a plus de chances de fonctionner...

Il ne faut pas oublier d'initialiser $mdp et $log (suivant la ligne lue dans la table sql!) ==> sinon ça sera jamais "ok"



Mais en général ce n'est pas comme ça qu'on s'y prends. C'est plus comme cela (ça permet plusieurs utilisateurs et plusisuers niveau de connexion!):



// connecte et affecte
//////////////////////

if (!isset($_GET['login']))
$login="";
else
$login=$_GET['login'];

if (!isset($_GET['password']))
$password="";
else
$password=$_GET['password'];


// teste l'user
///////////////
$query="select * from comptes_utilisateurs WHERE login like '".$login."' and password='".$password."" ;
$result=mysql_query($query);

if (mysql_affected_rows()!=1 )
$err=1;
else
$err=0;


if ($err==0)
{
// condition ok
}
else
{
// condition pas ok
}

?>



Bienvenue dans ce monde de logique...
0
otherwise01@hotmail.com
 
Merci ! C'est bon.
0