2011-12-24 170 views
1

我使用CodeIgniter为我的法律构建Web应用程序。我试图建立记住我的功能,但我无法在共享主机上或本地设置Cookie。未设置PHP Cookie

我试过CI的cookie助手和PHP的setcookie(),都没有工作。

PHP:

$token = $this->random(32, $this->input->post('userPassword')); 
$cookie_value = '{"email":"'. $this->input->post('userEmail') .'","token":"'. $token . '"}'; 

if (setcookie('remember_me', urlencode($cookie_value), 1000000, '/')) 
{ 
    echo "Set Val: " . json_encode($cookie_value); 
} 

CI:

$this->load->helper('cookie'); 
$token = $this->random(32, $this->input->post('userPassword')); 
$cookie_value = '{"email":"'. $this->input->post('userEmail') .'","token":"'. $token . '"}'; 

if (set_cookie('remember_me', urlencode($cookie_value), 1000000, '/')) 
{ 
    echo $this->input->cookie('remember_me'); 
    echo "Set Val: " . json_encode($cookie_value); 
} 

似乎都工作,因为他们的if块内得到的,但是他们不设置cookie或者在Chrome或Firefox浏览器。

我在做什么错?

+2

哪来的代码这就是告诉你的cookies设置的arent它 – Galen 2011-12-24 01:21:05

+0

很可能只是一个'else'说'回声 “不!” ;' – Seth 2011-12-24 02:09:57

+0

您究竟确定Cookie没有设置? – deceze 2011-12-24 02:14:33

回答

3

首先,您需要及时设置cookie的到期时间,以便它立即过期。

所以这个:

setcookie('remember_me', urlencode($cookie_value), 1000000, '/') 

应该是:

setcookie('remember_me', urlencode($cookie_value), time()+1000000, '/') 
+0

谢谢!我知道这一定很简单。 – Seth 2011-12-24 14:19:03