在Kohana v3中獲取當前訪客會話ID的最佳方式是什麼? session_id()
似乎並沒有工作,只爲我返回空。在Kohana 3中獲得會話ID的最佳方式是什麼?
目前我使用cookie::get('session')
,但這不起作用的第一次訪問該網站,我需要做的。
我知道你可以在Kohana的V2做$this->session->id()
,但是這似乎並沒有在KO3存在......
感謝
在Kohana v3中獲取當前訪客會話ID的最佳方式是什麼? session_id()
似乎並沒有工作,只爲我返回空。在Kohana 3中獲得會話ID的最佳方式是什麼?
目前我使用cookie::get('session')
,但這不起作用的第一次訪問該網站,我需要做的。
我知道你可以在Kohana的V2做$this->session->id()
,但是這似乎並沒有在KO3存在......
感謝
通常,您可以使用以下3種會話類型中的任何一種:Native,Cookie,Database。
對於cookie,我相信你沒有會話ID。即使在使用cookie作爲會話類型時調用Session :: instance() - > regenerate(),它也只會返回NULL。
對於本機,您應該能夠在通過Session :: instance() - > regenerate()生成它時獲取ID,它將返回會話ID。
對於數據庫,Session_Database已經保護了存儲會話ID的$ _session_id。你可能想要擴展這個類並編寫你自己的getter。
希望有所幫助。
通過觀察在GitHub上源,我似乎無法到找到一個返回id的方法。
但是,session_id()
用於native driver,所以也許它應該工作在你的情況。
也許如果您先致電session_regenerate_id()
?
如果您使用的是數據庫驅動程序,那麼cookie將保存會話ID。
另一方面,它似乎沒有直接的方式來獲得會話ID。 作爲@SyaZ建議的方式,您應該擴展會話類並編寫自己的getter方法。
的Kohana有會議包裝類。這個類被稱爲Session。 Kohana允許使用多種驅動程序(如memcached)以多種方式存儲會話數據。我使用本機的方式來存儲會話數據,這是默認的,如果你不 我已經看過的Kohana代碼本地會話通過配置/ session.php文件的任何配置的變化,發現這會給會話ID
Session::instance()->id();
它適合我。希望它也適合你!
要提高你的文章的質量,請包括/爲什麼你的答案將解決問題。 – 2012-10-03 00:42:49
謝謝。我解釋說。 – hridayesh 2012-12-03 08:41:15