首页 > 解决方案 > 如何将 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
]

标签: phpcakephp

解决方案


感谢用户 ndm 我来到了这个解决方案:

应用程序.php:

'Session' => [
        'defaults' => 'php',
        'ini' => [
            'session.cookie_path' => '/',
            'session.cookie_domain' => 'localhost:8765'
        ]
    ]

现在在普通文件中使用 cakePHP 的会话就可以了。

非常感谢 !:)


推荐阅读