我想检查是否设置了用户会话,当我运行此代码时,它会给出“页面无法正常工作,localhost重定向您太多次”。

I want to check whether the user session is set or not when i run this code it gives "page isn't working localhost redirected you too many times."

提问人:Sh Husnain 提问时间:10/23/2022 最后编辑:Elias SoaresSh Husnain 更新时间:10/23/2022 访问量:23

问:

我想检查是否设置了用户会话,如果未设置会话,它会将用户重定向到登录页面,如果设置了会话,它会将用户重定向到 view.php 页面,但是当我运行此代码时,它给了我这个错误“页面不起作用,localhost 重定向您太多次。

    $uid=$_SESSION['uid'];

    if (isset($_SESSION['uid'])==false || isset($_SESSION['uid'])==$uid) 
    {
        if (isset($_SESSION['uid'])==false)
        {
            header("Location:login.php");
        }
        if (isset($_SESSION['uid'])==$uid)
        {
            header("Location:view.php");
        }
    }
php mysql 会话 isset

评论

1赞 John Smith 10/23/2022
如果设置了变量,isset() 将返回 true 或 false 值,而不是设置或未设置的值。此外,像这样发送相对的标头重定向请求是一种不好的做法(或根本没有实践),它们应该是绝对的(example.com/login.php)
0赞 Honk der Hase 10/23/2022
@JohnSmith说了什么......另外:您在进行检查之前就已经访问了 $_SESSION['uid'],如果它甚至存在:)首先检查 isset(),如果存在,请将其与某个值进行比较。
0赞 Sh Husnain 10/23/2022
@HonkderHase如果我这样写而不将其存储在任何变量中怎么办?if (isset($_SESSION['uid'])==false || isset($_SESSION['uid'])==true) { if (isset($_SESSION['uid'])==false) { header(“Location:login.php”); } if (isset($_SESSION['uid'])==true) { header(“Location:view.php”); } }
0赞 Honk der Hase 10/23/2022
if (isset($_SESSION['uid'])) { /* redirect to view.php */ } else { /* redirect to login.php */ }

答: 暂无答案