在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_pathsession.cookie_domain配置涵盖了您的应用程序位置。

又见