2013-07-01 71 views
1

我試圖在codeigniter model中擁有登錄功能,但無法在那裏檢索cookie。無法在codeigniter中檢索cookie

它返回布爾假。

我嘗試過搜索問題,其中一個問題是未設置Cookie, 但我的Cookie正在瀏覽器中設置,位於域localhost下。我曾嘗試在不同的項目中使用本地主機上的cookie,而不使用codeigniter,我可以在本地主機上檢索cookie。

這裏$_COOKIE['username']會拋出錯誤無效索引'用戶名',$this->input->cookie('username')將返回bool(false)。但是我可以在瀏覽器中看到'用戶名'cookie。

Cookie設置和檢索在不同的文件上。

public function checkLogin(){ 

    $this->load->helper('cookie'); 

    $row['user'] = $this->input->cookie('username', TRUE); 
    $row['handle'] = $this->input->cookie('email', TRUE); 
    $row['id']  = $this->input->cookie('pid', TRUE); 
    $row['type'] = $this->input->cookie('type', TRUE); 
    $row['slug'] = $this->input->cookie('slug', TRUE); 
    $row['cuid'] = $this->input->cookie('cuid', TRUE); 

    return $this->input->cookie('username', false); 
    } 
} 

我設置的Cookie在不同的文件中,

setcookie("username",$user, time()+60*60*60*24*30); 
setcookie("email",$handle, time()+60*60*60*24*30); 
setcookie("pid",$row['id'], time()+60*60*24*30*60); 
setcookie("type",$type, time()+60*60*24*30*60); 
setcookie("slug",$row['slug'], time()+60*60*24*30*60); 
setcookie("city",$row['city'], time()+60*60*24*60*30); 
setcookie("cuid", $code, time()+60*60*24*60*30); 

請詢問需要更多的信息。我在控制器中使用了構造函數(兩個下劃線),而不是模型中。正在設置cookie的表單不在控制器或模型中,而在根文件夾中。我也嘗試使用$this->input->set_cookie();設置Cookie。

+0

如果您嘗試使用cookie助手,您需要嘗試使用它有點不同。查看手冊http://ellislab.com/codeigniter/user-guide/helpers/cookie_helper.html – mic

+1

你說你可以在瀏覽器中看到用戶名cookie,它是否設置了值? – Jeemusu

+0

是的,它有正確的值集@Jeemusu –

回答

1

Localhost可能會根據設置cookie的文件設置路徑。

顯式聲明路徑。

setcookie("username",$user, time()+60*60*60*24*30, "/"); 

帶路徑「/」的餅乾可以在任何地方找到,否則不可以。

+0

謝謝jeez,工作。 –

+0

樂意幫忙.. – 2013-07-01 09:46:12