現在、私のウェブサイトのログインページで作業しており、私は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;
?>
編集:問題はfalseをリダイレクトによって引き起こされた
これはログアウトコード(編集済み)です。ログアウトコードは別のログインページにリダイレクトされます。
*「すべては私はタブを閉じて再度開く後に再び正常に動作します。」* - http://shouldiblamecaching.com –