php - 如何将 Session 变量从经典 php 文件传递到 CakePHP 文件?
问题描述
我正在为 API 调用(complet.php)设置某种集线器,它将通过标头将请求重定向到正确的 CakePHP 控制器和操作。
为此,我必须使用经典会话在文件之间传递我的变量,但有一个问题:它们没有存储在 CakePHP 会话中。
我已经尝试将会话名称(包括在下面)放在 session_start 之前,但它不起作用
会话名称和开始(complet.php):
session_name('CAKEPHP');
session_start();
重定向功能(complet.php):
function redirect($url){
if($url != null){
header('Location: '.$url);
exit();
}
else{
http_response_code(500);
}
}
第一行测试函数(CakePHP 文件):
dd($this->getRequest()->getSession()->read('m_email'));
预期输出为jose@test.fr
,但实际输出为null
。
session_get_cookie_params (complet.php // CakePHP 文件) :
array(5) { ["lifetime"]=> int(0) ["path"]=> string(1) "/" ["domain"]=> string(0) "" ["secure"]=> bool(false) ["httponly"]=> bool(false) }
//
\src\Controller\UserController.php (line 69)
[
'lifetime' => (int) 0,
'path' => '/',
'domain' => '.localhost',
'secure' => false,
'httponly' => true
]
解决方案
感谢用户 ndm 我来到了这个解决方案:
应用程序.php:
'Session' => [
'defaults' => 'php',
'ini' => [
'session.cookie_path' => '/',
'session.cookie_domain' => 'localhost:8765'
]
]
现在在普通文件中使用 cakePHP 的会话就可以了。
非常感谢 !:)
推荐阅读
- flutter - 在颤动中乘以手势检测器
- mysql - laravel 中的 vue 组件仅在服务器上不起作用
- spring-boot - Springdoc GroupedOpenApi 不遵循使用 OperationCustomizer 设置的全局参数
- java - Camunda BPM:CSRFPreventionFilter:无效的 HTTP 标头令牌
- c++ - 从文件中读取多个字节并存储它们以在 C++ 中进行比较
- ionic-framework - 我在 ionic 的应用浏览器中使用。它在移动浏览器而不是应用程序上打开 url
- python - pycharm 项目:源根目录和导入未更新?
- c# - 将 EF Core 3.1 转换为存储字符串枚举值,而不是整数
- android - FirebaseUI-Android - oAuth 登录后自定义 Chrome 选项卡不会自动关闭(Microsoft 和 Apple)
- database - MongoDB 分片,MongoDB 路由器的“mongos”是否存在瓶颈?