je faisais ce tutoriel How to create a login system in PHPdéclaration préparée exécute, mais je ne peux pas chercher les résultats
J'essaie d'utiliser une instruction IF pour vérifier si pour définir l'identifiant de session. Le courant permet à un utilisateur de se connecter et d'envoyer un écho à l'identifiant de session en cours. Lorsque j'entre un mot de passe erroné, le code devrait faire écho à un message, mais il ne fait rien. En outre, je suis incapable d'utiliser le bouton de déconnexion pour arrêter la session.
Voici ma page de connexion
<?php
session_start();
//include 'dbh.php';
//probably do not need this can write connection in this file too
$conn = new PDO('mysql:host=localhost;dbname=testtable', 'root', '');
$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
if(!$conn){
die("Connection is fubar yo!!! ");
}
$uid = $_REQUEST['uid'];
$pwd = $_REQUEST['pwd'];
$sql = "SELECT * from user WHERE uid='$uid' AND pwd='$pwd'";
$result = $conn->prepare($sql);
$result->execute();
if(!$row = $result->fetch(PDO::FETCH_ASSOC)){
echo("Your username or Password is wrong");
} else {
echo("hey man..it works");
$_SESSION['id'] = $row['id'];
}
header("Location: fakelogin.php");
?>
Voici ma page de fermeture de session.
<?php
session_start();
session_destroy();
header("Location: fakelogin.php");
?>
Voici la page principale qui contient les boutons de connexion, d'inscription et de déconnexion.
<?php
session_start();
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Look ma, no hands!</title>
</head>
<body>
<form action="login.php" method="POST">
<input type="text" name="uid" placeholder="Enter username"><br>
<input type="password" name="pwd" placeholder="Enter password"><br>
<button type="submit" id="login">LOGIN</button>
</form>
<?php
echo("testing");
if(isset($_SESSION['id'])){
echo($_SESSION['id']);
} else {
echo("You are not logged in");
}
?>
<br><br><br>
<form action="signup.php" method="POST">
<input type="text" name="first" placeholder="Enter first name"><br>
<input type="text" name="last" placeholder="Enter last name"><br>
<input type="text" name="uid" placeholder="Enter username"><br>
<input type="password" name="pwd" placeholder="Enter password"><br>
<button type="submit" id="sbt">SIGN UP HERE YO!</button>
</form>
<br><br><br>
<form>
<button action="logout.php">LOG OUT</button>
</form>
</body>
</html>
Vous devriez probablement commenter la redirection d'en-tête lors du test. – josephting
Je l'ai pris sur les deux. Je n'ai pas vu de changement. Juste pour le compte rendu, pourquoi est-ce une bonne idée de l'enlever lors des tests? – VK1
Vous ne serez pas en mesure de voir le résultat, car vous verrez juste 'fakelogin.php' ou n'importe quelle page que vous avez redirigé après le processus est fait si vous laissez la redirection po Après avoir chargé votre page de connexion, vous êtes redirigé à fakelogin.php? Ou restez-vous sur la page de connexion? – josephting