如何在常规PHP脚本中继续CakePHP 3会话?

问题描述 投票:1回答:1

我的情况如下。我有一个cakephp项目和一个在同一台服务器上运行的独立的简单php脚本。当我使用我的客户端浏览器连接到cakephp项目时,它会建立一个应该的会话。

现在我想用我的普通php脚本继续会话数据。我再次使用相同的客户端浏览器访问普通的PHP脚本(因此请求元数据应该相同并且会话应该被识别)并且我将cakephp会话选项设置为PHP。

'Session' => [
  'defaults' => 'php',
 ],

但是,我无法找到如何在纯PHP脚本上继续会话。我会假设我的普通php脚本的以下两行会做出魔术:

session_start(); 
echo json_encode($_SESSION);

亲切的问候,马吕斯

php session cakephp cakephp-3.x
1个回答
5
投票

CakePHP PHP会话默认值(与所有内置默认值一样)确实将cookie的名称/会话名称(session.name INI设置)更改为CAKEPHP

https://github.com/cakephp/cakephp/blob/3.5.3/src/Network/Session.php#L133-L138

因此,您必须更改它以匹配您的vanilla 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配置涵盖您的两个应用程序位置。

也可以看看

© www.soinside.com 2019 - 2024. All rights reserved.