[英]redirecting cycle based on user session
我在重定向到页面时遇到问题。 似乎它多次重定向自身。 我有
if(!isset($_SESSION)){
header("location:index.php");
exit();
}
在我的标题中 我的标头包含在我的索引页和其他地方。 我知道,因为它在标题中,它将被重定向到index.php,然后它将再次脚本反复执行,这给了我一些问题。
我如何防止它在重定向后立即停止执行? 还是有另一种方法来检查用户是否已登录,如果没有,请转到index.php?
谢谢!
对于初学者,您不应该检查SESSION数组本身是否已完整设置。 您应该只分配一个或两个索引并对其进行检查。 这样,您将永远不会逃脱重定向,因为您甚至都没有可能分配SESSION。
您需要分配类似$_SESSION['authorized'] = TRUE;
成功登录后 ,然后在每个页面上检查此索引是否已设置,为TRUE并采取相应措施。 另外,您应该重定向到登录页面或类似的内容...您应该可以实际登录用户! 当然,除非您的登录表单不在索引页面中,但是您没有指定该信息...
if(isset($_SESSION['authorized']) AND ($_SESSION['authorized'] === TRUE)
{
//ok, user is logged. Redirect somewhere else? Do something specific?
}
else
{
header("Location:index.php"); // or redirect to login.php, for example
exit();
}
另外,请记住在要使用会话的所有页面中首先调用session_start()
。
if
语句仅存在逻辑缺陷。
如果将开始会话处理,则$_SESSION
将存在。
如果不是,则不存在。
但这与您/用户是否使用会话无关。
因此, if
语句是无用的。 请阅读PHP手册,以了解会话如何在PHP中工作 。
我弄清楚了,我知道我的标头中有一个if语句,所以当我尝试重定向到index.php时,我仍然有if语句但没有会话,我将要重定向自己在一个永无止境的循环中。
我所做的只是为index.php创建了一个新头
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.