2013-03-08 64 views
1

這是我的問題...我加入是CI_Controller的構建這些線使用CodeIgniter會話類問題

$this->load->library("session"); 
    if($this->session->userdata("var")==FALSE) 
    { 
     $this->session->set_userdata("var", "value"); 
    } 

當我使用$這 - >會話級>用戶數據(「VAR」)在子類,它沒有價值。我通過在CI_COntroller的構造中以及在子類的構造中顯示$ this-> session-> userdata(「var」)的值來測試它,並且它向我顯示了父親的值,但沒有顯示孩子的值。

還有一件事,重新加載頁面大約3或4次後。它工作得很好。

我將不勝感激您的答案。 (我很抱歉,我不說英語的人)

+0

你使用cookies或存儲在數據庫中? – landons 2013-03-08 17:19:40

+0

mmmm ...我使用codeigniter的庫會話,它不工作與cookie?...我不明白你 – user2065593 2013-03-08 17:22:22

+0

會話庫默認存儲在cookie中的數據,除非你設置配置使用數據庫商店會議。 – landons 2013-03-08 17:24:46

回答

0

你可以做像這樣

$this->load->library("session"); 

$var = $this->session->userdata("var"); 

if(!$var) 
{ 
    $this->session->set_userdata("var", "value"); 
} 
1

你應該做的

$this->load->library("session"); 
    if(!$this->session->userdata("var")) 
    { 
     $this->session->set_userdata("var", "value"); 
    } 

原因userdata()方法返回false,如果真是否設置會話數據。

+1

是不是'!$ var'和'$ var == FALSE'表達式相同? – kidonchu 2013-03-08 19:37:37

+0

不知道,但我認爲你應該做$ var === false – sbaaaang 2013-03-08 19:38:12

+0

@kidonchu無論如何,最好的做法是我在上面顯示在我的答案;) – sbaaaang 2013-03-08 19:38:43