[PHP] Pb Session avec mot de passe
otherwise01
-
otherwise01@hotmail.com -
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;
}
}
?>
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:
- [PHP] Pb Session avec mot de passe
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Voir mot de passe wifi android - Guide
2 réponses
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...
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...