gpt4 book ai didi

php - 没有 Cookie 的 CakePHP session

转载 作者:行者123 更新时间:2023-12-04 15:48:39 29 4
gpt4 key购买 nike

我想制作一个不需要 cookie 但仍有 session 的应用程序。因此,我创建了 SessionID 并将其带入 URL。我现在的问题是 HTML 帮助程序无法识别这一点,并且输出的所有链接都没有 session ID。

CakePHP 是否必须被告知这样做,或者没有任何机制可以做到这一点? (在每个链接中获取 session ID)

最佳答案

我刚刚在 cakephp 中实现了一个 url session ,我将 cakephp 设置为使用 trans_sid 而不是 cookies:

ini_set("session.use_cookies",0);
ini_set("session.use_trans_sid",1);

这可能可以使用:http://bakery.cakephp.org/articles/admad/2009/09/02/how-to-bend-cakephp-s-session-handling-to-your-needs 来完成并使用 beforefilter 读取 session ID 表单 url 参数并从中设置 session id,如果 session id 未设置为 url 参数,则使用 cookie

// Use sid from post
if (!empty($this->params['url']['sid'])) {
$this->Session->id($this->params['url']['sid']);
}
// Or failover to cookie
else
{
$this->Session->id($this->Cookie->read('CAKEPHP'));
}

记得重写AppHelper类中的url函数

function url($url = null, $full = false) {
return parent::url($url, $full)."/?sid=".session_id();
}

并在 AppController 类中进行重定向和闪现

function redirect($url, $status = null, $exit = true) {
$url = $url."?sid=".session_id();
return parent::redirect($url, $status, $exit);
}

function flash($message, $url, $pause = 1, $layout = 'flash') {
$url = $url."?sid=".session_id();
return parent::flash($message, $url, $pause, $layout);
}

关于php - 没有 Cookie 的 CakePHP session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3675067/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com