如何在常规 PHP 脚本中继续 CakePHP 3 会话?
How to continue a CakePHP 3 session in a regular PHP script?
我的情况如下。我在同一台服务器上有一个蛋糕 php 项目和一个单独的普通 php 脚本 运行。
当我使用我的客户端浏览器连接到 cakephp 项目时,它会按预期建立一个会话。
现在我想用我的普通 php 脚本继续会话数据。我再次使用相同的客户端浏览器访问纯 php 脚本(因此请求元数据应该相同并且会话应该被识别)并且我将 cakephp 会话选项设置为 PHP.
'Session' => [
'defaults' => 'php',
],
但是,我无法找到如何在普通 php 脚本上继续会话。
我会假设我的普通 php 脚本的以下两行会产生魔力:
session_start();
echo json_encode($_SESSION);
亲切的问候,
马吕斯
CakePHPs 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_path
and session.cookie_domain
配置涵盖您的两个应用程序位置。
另见
我的情况如下。我在同一台服务器上有一个蛋糕 php 项目和一个单独的普通 php 脚本 运行。 当我使用我的客户端浏览器连接到 cakephp 项目时,它会按预期建立一个会话。
现在我想用我的普通 php 脚本继续会话数据。我再次使用相同的客户端浏览器访问纯 php 脚本(因此请求元数据应该相同并且会话应该被识别)并且我将 cakephp 会话选项设置为 PHP.
'Session' => [
'defaults' => 'php',
],
但是,我无法找到如何在普通 php 脚本上继续会话。 我会假设我的普通 php 脚本的以下两行会产生魔力:
session_start();
echo json_encode($_SESSION);
亲切的问候, 马吕斯
CakePHPs 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_path
and session.cookie_domain
配置涵盖您的两个应用程序位置。
另见