登录接受并失败?

时间:2017-01-25 15:57:04

标签: php login

大家好我正在尝试用PHP创建一个登录脚本..它运行良好我可以登录但我得到了这个奇怪的错误或者其他什么叫它...你看我以普通用户身份登录它的工作原理很好,但是当我以管理员身份登录时,我会被淹没,但在同一时间它说我的登录失败了......

我收到了这条欢迎辞:

<?php echo "<h3 id ='tjena'> Welcome ".$_SESSION['user']."</h3>";?>

所以我知道我已经登录... 然而,我也有一个标题,应该引导我?成功,但由于某种原因它失败并指示我?错误

这是我的代码:

while($row = $result->fetch_object()) {
    if($username == $row->username) {
        $checkPassword = password_verify($password,$row->password);
        if($checkPassword ){   
            session_start();
            $_SESSION['loggedIn'] = true; 
            $_SESSION['user'] = $row->username;
            $_SESSION['admin'] = $row->admin;
            $_SESSION['LAST_ACTIVITY'] = time(); 
            header("Location:index.php?success");
            $fail = false;
        }
    } else {
        $fail = true;
    }
}

if($fail){      
    header("Location:index.php?error");
}

有人知道导致此错误的原因是什么吗?提前完成!

2 个答案:

答案 0 :(得分:1)

PHP脚本会将用户重定向到另一个页面,但该脚本不会停止执行,除非您告诉它。

这就是为什么我认为添加一行exit();就行了。

while($row = $result->fetch_object()) {
    if($username == $row->username) {
        $checkPassword = password_verify($password,$row->password);
        if($checkPassword ){   
            session_start();
            $_SESSION['loggedIn'] = true; 
            $_SESSION['user'] = $row->username;
            $_SESSION['admin'] = $row->admin;
            $_SESSION['LAST_ACTIVITY'] = time(); 
            header("Location:index.php?success");
            exit();
            $fail = false;
        }
    } else {
        $fail = true;
    }
}

if($fail){      
    header("Location:index.php?error");
}

答案 1 :(得分:0)

检查您是普通用户还是管理员的代码在哪里?如果$ checkpassword为true,你有$ _SESSSION ['user']和$ _SESSSION ['admin']。 在session_start();绝对应该放在最顶层+写一个简单的if语句来检查用户或管理员。

  • 你应该把$ fail = false;在标题之前(“Location:index.php?success”)声明。