这是我检查用户是否登录的代码:
if (!$_SESSION['userInfo']['name'])
{
Redirect('login.php');
}
以及重定向页面的代码是:
function Redirect($url)
{
ob_start();
header('location:'.$url);
exit;
}
当我按一次刷新按钮时,此代码工作正常,但当我按下刷新按钮多次时,会取消设置会话变量并重定向到登录页面。
我正在使用带有API的代码,需要大约5-10秒来加载页面。如果我在加载之前按下刷新按钮,那么就发生了。
可能有什么问题?
答案 0 :(得分:0)
尝试使用empty()
if (empty($_SESSION['userInfo']['name']))
{
Redirect('login.php');
}
注意:请确保在登录前未在$_SESSION['userInfo']['name']
中设置任何值。登录后,您还必须清除它。
答案 1 :(得分:0)
尝试使用isset()
函数(参考:http://www.php.net/isset):
if (!isset($_SESSION['userInfo']['name']))
{
Redirect('login.php');
}
请确保在有效会话期间不清除$_SESSION
变量,并且务必在用户退出时清除它。
也许还在使用:
if (!isset($_SESSION['userInfo']['name']))
{
header('Location: login.php');
}
答案 2 :(得分:0)
您可能会忽略代码段中的代码,但确定要开始会话吗?
session_start()
if (!isset($_SESSION['userInfo']['name']))
{
Redirect('login.php');
}