如果未登录,则重定向用户

时间:2016-04-03 03:21:24

标签: wordpress redirect

我在我的网站上使用自定义页面,我需要检查用户是否已登录,如果没有,则重定向到另一个页面。 成功登录后,会话变量设置为:

session_start();
$_SESSION['login'] = "1";

要检查用户是否已登录页面,我会在页面开头使用此代码:

session_start();
if($_SESSION['login']=='')
{
    @header("location:login.php");
}

但是,即使用户未登录,页面也不会重定向。显示的错误是

  

注意:未定义索引:登录XXXX / XXXX / XXXX / XXXX

是否有其他方法可以重定向header()以外的用户,或者可能使用其他一些代码来达到同样的目的?

1 个答案:

答案 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
相关问题