在Kohana v3中获取当前访问者会话ID的最佳方法是什么? session_id()
似乎不起作用,只为我返回null ..
目前我正在使用cookie::get('session')
,但是在您第一次访问该网站时这不起作用,我需要这样做。
我知道你可以在Kohana v2中做$this->session->id()
,但这在KO3中似乎不存在......
由于
答案 0 :(得分:4)
通常,您使用以下3种会话类型中的任何一种:Native,Cookie,Database。
对于cookie,我相信你没有会话ID。即使在使用cookie作为会话类型时调用Session :: instance() - > regenerate(),它也只会返回NULL。
对于native,你应该能够在Session :: instance() - > regenerate()生成ID时获取ID,返回会话ID。
对于数据库,Session_Database已保护$ _session_id,其中存储了会话ID。您可能希望扩展该类并编写自己的getter。
希望有所帮助。
答案 1 :(得分:4)
Kohana有会话包装课程。该类称为Session。 Kohana允许多种方式使用多个驱动程序(如memcached)存储会话数据。我使用本机方式存储会话数据,如果您不通过config / session.php进行任何配置更改,则默认为默认值 我查看了本地会话的kohana代码,发现这将提供会话ID
Session::instance()->id();
它对我有用。希望它也适合你!
答案 2 :(得分:2)
答案 3 :(得分:0)
答案 4 :(得分:0)
如果您正在使用数据库驱动程序,则cookie将保留会话ID。
另一方面,它似乎没有获得会话ID的直接方法。 正如@SyaZ建议的那样,你应该扩展会话类并编写自己的getter方法。