注销后登录问题

时间:2017-07-21 18:21:17

标签: php mysql session

我目前正在为我的网站登录页面,并且我正在使用PHP。 当我第一次尝试登录时,它运行正常,密码验证正确,如果密码不匹配则显示错误,或者如果用户未首先注册(未找到电子邮件地址),那么我和#39;我认为代码逻辑很好。

当我退出并尝试再次登录时,代码无法正常工作,我只是重定向到登录页面,无论我输入的密码是对还是错,或者电子邮件地址是否存在。关闭标签并重新打开后,一切正常。

我认为这可能是一个会话问题,但我还是新手,所以我希望你能帮助我。

这是退出代码(已编辑):

<?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;
?>

编辑:问题是由错误的重定向引起的。注销代码将重定向到不同的登录页面。

1 个答案:

答案 0 :(得分:-1)

 //Try this one in your logout.php page

    <?php
         session_start();
     ?>
     <!DOCTYPE html>
     <html>
    <body>

   <?php
 // remove all session variables
    session_unset(); 

// destroy the session 
     session_destroy(); 
 ?>

 </body>
 </html>