如何测试受限制的页面? (PHP)

时间:2015-11-17 03:24:25

标签: php mysql login

我无法测试受限制的页面是否实际上正在执行它的工作。例如,用户需要先登录才能访问页面。在这个页面上,我把它放在顶部:

if(isset($_SESSION['userid'])!="")
{
    header("Location: login.php"); 
}

我认为这应该做的是,如果用户没有登录,它会将它们重定向到login.php,在那里他们可以登录。但是,我不知道这是否有效。当我尝试在浏览器中测试它时,我可以访问该页面。我不知道这是因为我还在登录,或者它是否不起作用。我该如何正确测试?

1 个答案:

答案 0 :(得分:1)

我假设您已经开始了您的会话,但如果没有,您需要每个人。单。页面。,需要会议。

session_start();

诀窍。

您的比较并不正确。通常的流程是运行isset() || empty()检查,而不是检查isset()是否与""不等:

if(!isset($_SESSION['userid'])) { ...

由于isset()返回布尔值(true / false)而不是字符串(""

最后,即使重定向,您的脚本也会继续执行。如果用户未经过身份验证,则需要结束脚本的运行:

session_start(); // start session

if(!isset($_SESSION['userid']) || empty($_SESSION['userid'])) {
    die(header("Location: login.php")); // ends script execution. 
}