2013-12-18 38 views
0

我使用Kohana 3.3和在我的bootstrap.php我設置Session::$default = 'database';即使在使用數據庫會話時,Kohana是否始終使用本地會話?

會話確實進入數據庫,似乎工作正常。但是,瀏覽器仍然獲得「原生」會話cookie。它既有「會話」又有「會話」cookie。

Kohana 3.3是否始終使用本機會話來處理某些事情,即使告知默認數據庫會話?

另外,這些會話中的每一個與如何在較低級別處理會話有關,例如進入/ var/lib/php5的會話文件?

我Kohana的會話配置:如果你設置默認爲「數據庫」

return array(
    'native' => array(
     'name' => 'nsession', 
     'lifetime' => 604800, 
    ), 
    'cookie' => array(
     'name' => 'csession', 
     'encrypted' => TRUE, 
     'lifetime' => 604800, 
    ), 
    'database' => array(
     'name' => 'session', 
     'encrypted' => FALSE, 
     'lifetime' => 604800, 
     'group' => 'default', 
     'table' => 'sessions2', 
     'columns' => array(
      'session_id' => 'session_id', 
      'last_active' => 'last_active', 
      'contents' => 'contents' 
     ), 
     'gc' => 500, 
    ), 
); 
+0

有一個php.ini設置來始終啓動本機會話,你檢查過嗎? – Darsstar

回答

0

沒有Kohana的3.3不應該做一個「本地會話」的cookie。儘管如此,它確實可以保存會話cookie。如果還有其他cookie正在創建,可能是其他問題出錯了。

想到的兩件事是session.auto_start在您的php.ini或您仍然在某處使用「本地」會話驅動程序的某處是正確的。

3如何在內部工作幾乎相同。他們都使用php SessionHandlerinterface。 3個驅動程序之間的唯一區別是會話數據如何保存,檢索和刪除。

原生:

PHP將會話保存到磁盤上的某個位置。該位置在php.ini文件中指定。

Cookie:

會話數據被保存到cookie中。所以這個實現實際上使用了兩個cookie來保存會話數據。 (1:會話ID,2:會話數據)

數據庫:

會話數據被保存在數據庫中。

我希望這可以幫助你。