在Wordpress网站上使用会话

时间:2016-07-31 11:05:52

标签: php wordpress session

我有一个使用PHP的客户端页面,然后转到Wordpress页面。记住客户端页面上的会话,但是当我从Wordpress加载新页面时,会话为空。为什么Wordpress不像我的客户端页面那样存储我的会话数据?

此代码位于登录页面:

my_session_register('user_id');
$_SESSION['user_id']=$user_id;
header('Location: booking_user.php');

此代码检查Wordpress中的会话:

if (!my_session_is_registered('user_id')) {
    header('Location: login.php');
}

我只是不知道如何将会话保持到Wordpress。

3 个答案:

答案 0 :(得分:0)

您忘记添加可能导致问题的session_start()

如果您要使用$_SESSION,则必须session_start()

了解有关它的更多信息:Here

答案 1 :(得分:0)

您必须在每个页面上添加session_start();使用会话,或者将其保存在文件中并每次都包含它。

答案 2 :(得分:0)

虽然我的答案与其他两个答案相同,但我会告诉你原因。 Wordpress是无状态,因此默认情况下,您无法使用$_SESSION将数据从一个页面推送到另一个页面。这就是你必须在Wordpress网站上添加session_start()的原因。您可能希望将session_start()放入Wordpress中的init挂钩:

// You may just be able to write this
add_action( 'init', 'session_start' );

如果上述方法不起作用(我不明白为什么不这样做):

// You can add your own function as a wrapper
add_action( 'init', 'startCustomSession' );

function startCustomSession()
    {
        session_start();
    }