setcookie () не работает в Internet Explorer или Safari - PullRequest
1 голос
/ 02 апреля 2012

У меня был следующий код:

setcookie('username', $email, false, 'affiliates/', 'www.mydomain.com');

Он не работал в IE или Safari. Затем я изменил его на:

setcookie('username', $email, time()+60*60*24, 'affiliates/', 'www.mydomain.com');

И это начало работать. Теперь, 2 дня спустя, это не работает снова. Я не думаю, что я что-то изменил. Настройка файла cookie проверяется в другом файле с этим кодом:

if( isset($_COOKIE['username']) ) {
    ...
}
else {
    print( "<meta HTTP-EQUIV='REFRESH' content='0; url=index.html'>" );
    exit();
}

Он всегда перенаправляет на index.html (в Safari и IE). Есть идеи, почему это перестало бы работать? (Я убедился, что куки включены в обоих браузерах).

Одна вещь, которую я сделал в то время, когда она перестала работать, была проверка сайта, работающего на localhost. Я изменил код на:

setcookie('username', $email, time()+60*60*24, 'affiliates/', null);

Но только для версии localhost.

1 Ответ

0 голосов
/ 02 апреля 2012

Вы уверены, что у вас есть setcookie до всех остальных выходных? Заголовки не могут быть установлены после любого текста или HTML. Может быть, вам нужно удалить любое пространство над вашим

Кроме того, файл cookie должен быть установлен и использоваться из того же домена и пути.

...