在php脚本上继续cakephp 3 session
问题描述:
我的情况如下。我有一个cakephp项目和一个分离的纯php脚本在同一台服务器上运行。 当我使用我的客户端浏览器连接到cakephp项目时,它会根据需要构建一个会话。在php脚本上继续cakephp 3 session
现在我想用我的纯php脚本继续会话数据。我再次使用相同的客户端浏览器来访问纯php脚本(所以请求元数据应该是相同的,会话应该被识别),我设置cakephp会话选项给PHP。
'Session' => [
'defaults' => 'php',
],
但是,我无法找到如何继续在纯php脚本会话。 我会承担我的纯PHP脚本中的两行会做的魔力:
session_start();
echo json_encode($_SESSION);
亲切的问候, 马吕斯
答
CakePHPs PHP会话默认(如所有内置的默认值)不改变会话(session.name
INI设置)的饼干/名称的名称CAKEPHP
:
https://github.com/cakephp/cakephp/blob/3.5.3/src/Network/Session.php#L133-L138
所以,你要么必须改变以匹配您的香草PHP应用程序使用的默认值(这是最有可能PHPSESSID
,即PHP默认):
'Session' => [
'defaults' => 'php',
'cookie' => session_name(), // would use the PHP default
],
// ...
或更改后的应用程序使用配置的名称您CakePHP程序:
session_name('CAKEPHP');
session_start();
// ...
另外,还要确保session.cookie_path
和session.cookie_domain
配置涵盖了您的应用程序位置。
又见