2010-05-05 47 views
0

在Kohana v3中獲取當前訪客會話ID的最佳方式是什麼? session_id()似乎並沒有工作,只爲我返回空。在Kohana 3中獲得會話ID的最佳方式是什麼?

目前我使用cookie::get('session'),但這不起作用的第一次訪問該網站,我需要做的。

我知道你可以在Kohana的V2做$this->session->id(),但是這似乎並沒有在KO3存在......

感謝

回答

4

通常,您可以使用以下3種會話類型中的任何一種:Native,Cookie,Database。

對於cookie,我相信你沒有會話ID。即使在使用cookie作爲會話類型時調用Session :: instance() - > regenerate(),它也只會返回NULL。

對於本機,您應該能夠在通過Session :: instance() - > regenerate()生成它時獲取ID,它將返回會話ID。

對於數據庫,Session_Database已經保護了存儲會話ID的$ _session_id。你可能想要擴展這個類並編寫你自己的getter。

希望有所幫助。

0

通過觀察在GitHub上源,我似乎無法到找到一個返回id的方法。

但是,session_id()用於native driver,所以也許它應該工作在你的情況。

也許如果您先致電session_regenerate_id()

0

如果您使用的是數據庫驅動程序,那麼cookie將保存會話ID。

另一方面,它似乎沒有直接的方式來獲得會話ID。 作爲@SyaZ建議的方式,您應該擴展會話類並編寫自己的getter方法。

4

的Kohana有會議包裝類。這個類被稱爲Session。 Kohana允許使用多種驅動程序(如memcached)以多種方式存儲會話數據。我使用本機的方式來存儲會話數據,這是默認的,如果你不 我已經看過的Kohana代碼本地會話通過配置/ session.php文件的任何配置的變化,發現這會給會話ID

Session::instance()->id(); 

它適合我。希望它也適合你!

+0

要提高你的文章的質量,請包括/爲什麼你的答案將解決問題。 – 2012-10-03 00:42:49

+0

謝謝。我解釋說。 – hridayesh 2012-12-03 08:41:15

相關問題