我正在使用CodeIgniter为我的法律构建一个webapp。我正在尝试构建一个记住我的功能,但我无法在共享主机或本地设置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
区块,但它们不会在Chrome或Firefox中设置Cookie。
我做错了什么?
答案 0 :(得分:3)
首先,您要及时设置Cookie的到期时间,因此它会立即过期。
所以这个:
setcookie('remember_me', urlencode($cookie_value), 1000000, '/')
应该是:
setcookie('remember_me', urlencode($cookie_value), time()+1000000, '/')