2011-06-22 9 views
1

Куки, которые я установил в codeigniter, удаляются после перезапуска браузера. Я настраиваю печенье, как:Cookie удаляется при перезапуске браузера

$test_cookie = array(
        'name'=>'test', 
        'value'=> 'test', 
        'expire'=> time() + 60*60*24*14 
       ); 

$this->input->set_cookie($test_cookie); 

The print_r($test_cookie) возвращений:

Array ([name] => test [value] => test [expire] => 1309943188) 

Теперь я могу напечатать печенье, чтобы убедиться, что куки установлен:

$test_cookie= $this->input->cookie('test'); 
echo "<b> Cookie value: </b>". $test_cookie; 

cookie правильно печатает значение.

Однако, если я перезапущу браузер, я больше не получаю значение cookie. Я пробовал несколько браузеров. С var_dump я получаю: bool(false) Почему файл cookie удаляется при перезапуске браузера?

Спасибо.

+0

Есть ли некоторые настройки в вашем браузере, автоматически удаляющие файлы cookie при завершении работы? Это происходит с каждым браузером? –

+0

@ Damien Pirsy, как я уже упоминал, я поработал над несколькими браузерами, и это происходит со всеми. – Roman

ответ

4

В документации CodeIgniter указано, что значение expires добавлено к текущему времени. Таким образом, значение expires в вашем случае равно time() + time() + 60*60*24*14. Это может превышать 32-битный целочисленный предел и превращаться в отрицательное значение. Это, в свою очередь, приведет к временному файлу cookie, который удаляется при закрытии браузера.

$test_cookie = array(
    'name'=>'test', 
    'value'=> 'test', 
    'expire'=> 60*60*24*14 
); 

должно работать. Я думаю.

+0

Спасибо, именно эта проблема была. – Roman

Смежные вопросы