我在我的网站上使用自定义页面,我需要检查用户是否已登录,如果没有,则重定向到另一个页面。 成功登录后,会话变量设置为:
session_start();
$_SESSION['login'] = "1";
要检查用户是否已登录页面,我会在页面开头使用此代码:
session_start();
if($_SESSION['login']=='')
{
@header("location:login.php");
}
但是,即使用户未登录,页面也不会重定向。显示的错误是
注意:未定义索引:登录XXXX / XXXX / XXXX / XXXX
是否有其他方法可以重定向header()
以外的用户,或者可能使用其他一些代码来达到同样的目的?
答案 0 :(得分:0)
login
的{{1}}索引似乎未在您检查时设置,很可能是$_SESSION
位在您检查后,所以你要去必须确保使用$_SESSION['login'] = "1";
函数验证是否已设置,如下所示:
array_key_exists
或者,您可能希望默认设置if (array_key_exists('login', $_SESSION) && $_SESSION['login']=='') {
@header("location:login.php");
}
,默认情况下,如果登录成功,则只设置$_SESSION['login'] = 0
。
同时,我不建议您使用自己的登录机制,而是使用最初由知识渊博的wordpress编写器设计的脚本和技术,并经过社区的充分测试。 this question on the wordpress support site中描述了一种此类方法(将此添加到您的主题$_SESSION['login'] = "1";
):
functions.php