我有一个使用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。
答案 0 :(得分:0)
答案 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();
}