PHP Cookie未设置

时间:2011-12-24 01:19:19

标签: php codeigniter cookies

我正在使用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。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

首先,您要及时设置Cookie的到期时间,因此它会立即过期。

所以这个:

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

应该是:

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