我目前正在为我的网站开发一个登录页面,并使用PHP。 当我第一次尝试登录时,它工作正常,密码验证正确,如果密码不匹配或用户未先注册(未找到电子邮件地址),则显示错误,我认为代码逻辑很好。注销后登录问题
当我注销并尝试再次登录时,代码无法正常工作,我只是重定向到登录页面,无论我输入的密码是对还是错,或者是否存在电子邮件地址。关闭该选项卡并重新打开后,一切正常。
我认为这可能是一个会议的问题,但我仍然是新来的,所以我希望你能帮助我。
这是注销代码(编辑):
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
session_cache_expire();
session_unset();
session_destroy();
header ('Location: home.php');
?>
</html>
登录:
<?php
if(!isset($_SESSION)) {
session_start();
}
var_dump($_SESSION);
if(isset($_SESSION["userID"])){
header("Location: home.php");
}
require('dbconnect.php');
?>
<!DOCTYPE html>
<html>
<head>
<title> Business Bridge </title>
</head>
<body>
<div id="content">
<h2> Logge Dich ein </h2>
<?php
if(isset($_GET['login'])){
$email = $_POST['email'];
$passwort = $_POST['passwort'];
$statement = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$statement ->bindParam(1,$email);
$result = $statement->execute();
$res = $statement->fetch();
$data = $res[1] ."\n" . $res[2] . "\n";
if($statement->rowCount() > 0) {
if (password_verify($passwort, $res[2]) && $email == $res[1]){
$_SESSION['email'] = $_POST['email'];
$_SESSION['vname'] = $_POST['vname'];
$_SESSION['userlevel'] = $res[6];
$_SESSION['userID'] = $res[0];
header('Location: home.php');
}
else{
echo "Falsches Passwort, probiere es noch einmal!";
}
}else{
echo "Die Email Addresse gibt es nicht!";
}
}
?>
<form action="?login=1" method="post">
E-Mail: <br> <input type="email" size="40" maxlength="250"
name="email"><br><br>
Dein Passwort:<br> <input type="password" size="40"
maxlength="250" name="passwort"><br><br>
<input id="button" type="submit" value="Send">
</form>
</div>
</div>
</body>
</html>
<?php
$pdo->connection = null;
?>
编辑:这个问题是由错误的重定向引起的。注销代码将重定向到不同的登录页面。
*“一切正常后,我再次关闭选项卡,并重新打开它。” * - http://shouldiblamecaching.com –