gpt4 book ai didi

php - Session::instance() 在 session_start 之后 - Kohana (v.3.2)

转载 作者:行者123 更新时间:2023-12-03 14:55:49 25 4
gpt4 key购买 nike

我在使用 Kohana 的 Session 类时没有问题,但现在我遇到了一个特殊情况。在我的脚本中,我必须加载一个供应商类,它在某处调用 session_start

稍后在代码中我需要调用 Session::instance(),这会导致 Error reading session data. 异常。

我无法修改供应商代码(具体来说是 facebook php sdk,我不想修改它),我必须调用 Session::instance() 稍后。

如何解决这种情况?

你必须知道,一个简单的

<?php
session_start();
Session::instance();
?>

将产生相同的异常。我认为这是 Kohana 3.2 中的错误,但我需要以某种方式欺骗它。

要了解有关 Session 类的更多信息,请查看:http://kohanaframework.org/3.2/guide/api/Session

顺便说一句,我使用的是默认的 native session 类。

最佳答案

正如 Alex Mihai 指出的那样,我们可以在 Session::instance() 中使用 session ID 参数来重新启动它。

您得到的异常是 session 仍在运行,您无法恢复正在运行的 session 。所以你必须先关闭它。

试试这个:

// Start session
session_start();

// Store session id and close the session
$sessionId = session_id();
session_write_close();

// Then we can restore the session by using the session id
// and the Session class from Kohana
Session::Instance(Session::$default, $sessionId);

它可能也不是最优雅的解决方案,但这对我有用,我希望它能对你有所帮助。

关于php - Session::instance() 在 session_start 之后 - Kohana (v.3.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13836423/

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