Error de code dans le login

Résolu
lokardz Messages postés 91 Statut Membre -  
lokardz Messages postés 91 Statut Membre -
Bonjour,

j'ai un formulaire d'authentification et une page de traitement pour ouvrir une session

quand je tape le login et mot de passe j'ai une error comme quoi j'ai pas fais un login

http://localhost/sessions/session.php?error=1

voila mes pages

session.php

<?php
$error = isset($_GET['error']) ? $_GET['error'] : '' ;
$password = isset($_GET['password']) ? $_GET['password'] : '';
?>
<!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>Document sans titre</title>
</head>
<body>
<form action="session-login.php" methode="post">
<input type="text" name="login" placeholder="Votre Login" /> </br>
<input type="password" name="password" placeholder="Votre password" />
<input type="submit" value="se connecter" />
</form>
<?php
switch ($error) {
case 1:
echo "Merci de saisir votre login";
break;
case 2:
echo "le mot de passe <b> $password </b> n'est pas valide ...";
break;
case 3:
echo "vous avez été Déconnecter ";
break;
}
?>
</body>
</html>



session-login.php

<?php
$login = isset($_POST['login']) ? $_POST['login'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';

if($login == ''){
header('Location: session.php?error=1');

}elseif ($password != "toto"){
header('Location: session.php?error=2&password='.$password);
}else{
session_start();
$_SESSION['login'] = $login;
$_SESSION['password'] = $password;
$_SESSION['logged'] = true;
header('Location: session-bienvenue.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>Document sans titre</title>
</head>
<body>
</body>
</html>
A voir également:

3 réponses

gign44 Messages postés 132 Statut Membre 5
 
<form action="session-login.php" methode="post"> 

C'est vrai que methode avec un e il n'aime peut-etre pas :D
Ensuite je pense que ce sont tes conditions du login qui sont mal faites...

Je serais plus dans les anciennes syntaxes moi :


if((isset($_REQUEST['login']))&&(!empty($_REQUEST['login']))) {
$login = $_REQUEST['login'];

if((isset($_REQUEST['password']))&&(!empty($_REQUEST['password']))) {
if($_REQUEST['password']!="toto"){
header('Location: session.php?error=2');
}
else{
session_start();
$_SESSION['login'] = $login;
$_SESSION['logged'] = true;
header('Location: session-bienvenue.php');
}
}
}
else{
header('Location: session.php?error=1');
}

Cordialement
0
lokardz Messages postés 91 Statut Membre 3
 
le problème c'est qu'en dirait qu'il lie pas dans le champs login , parce qu'il affiche toujours le message Merci de saisir votre login???
0
gign44 Messages postés 132 Statut Membre 5
 
Tu es censé vérifier le login, le password dans ton IF, toi tu fais le contraire. Si il n'y a rien, ERREUR sinon on vérifie.
C'est un raisonnement à l'envers qui peut avoir pas mal de problèmes dans de longs codes.
Ensuite dans ton form, ta un E à method.
Puis les syntaxes du genre : if($login == '') sont vraiment pas... Car si le $_POST['login'] est vide, ta variable $login va retourner une erreur.
En espérant t'avoir aider,
regarde un peu le code que j'ai mis ci-dessus.

Cordialement
0
lokardz Messages postés 91 Statut Membre 3
 
merci gign44 c bon j'ai trouvé la solution en fin j'ai pas trouver, j'ai refais le code et il marche
surement j'ai oublier un truc bête mais j'arrivais pas a trouvé
merci en tout cas
0
lokardz Messages postés 91 Statut Membre 3
 
merci pour ce bout de code mais j'aimerais bien connaitre ma faute dans ma syntaxe
0