Error de code dans le login
Résolu
lokardz
Messages postés
91
Statut
Membre
-
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>
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:
- Error de code dans le login
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Scanner qr code pc - Guide
3 réponses
<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
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???
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
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