2011-12-24 5 views
1

Я использую CodeIgniter для создания webapp для моих законов. Я пытаюсь создать функцию «запомнить меня», но я не могу устанавливать файлы cookie на моем общем хосте или локально.PHP Cookies не установлены

Я пробовал как помощник cookie CI, так и 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.

Что я делаю неправильно?

+2

Wheres код тот говорит вам печенье Арент установить – Galen

+0

Это, скорее всего, просто быть '' else', что эхо "Нет!" ; ' – Seth

+0

Как именно вы определяете, что файлы cookie не установлены? – deceze

ответ

3

Для начала вы устанавливаете истечение срока действия файла cookie вовремя, поэтому он истекает немедленно.

Так что:

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

Должно быть:

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

Спасибо! Я знал, что все должно быть так просто. – Seth