Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Wordpress网站上使用会话_Php_Wordpress_Session - Fatal编程技术网

Php 在Wordpress网站上使用会话

Php 在Wordpress网站上使用会话,php,wordpress,session,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_sess

我有一个使用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');
}
// You may just be able to write this
add_action( 'init', 'session_start' );

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

您忘记添加
session\u start()
,这可能会导致问题

如果要使用
$\u SESSION
必须有
SESSION\u start()


了解更多信息:

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

虽然我的回答与其他两个答案相同,但我会告诉你原因。Wordpress是无状态的,因此默认情况下,您不能使用
$\u会话
将数据从一页推送到另一页。这就是为什么您必须在Wordpress站点上添加
session\u start()
。您可能希望将
会话\u start()
放入Wordpress中的
init
钩子中:

if (!my_session_is_registered('user_id')) {
    header('Location: login.php');
}
// You may just be able to write this
add_action( 'init', 'session_start' );
如果上述方法不起作用(我不明白为什么不起作用):