Intereting Posts
Написание HTML с переменными PHP в файл PDF? Логический оператор PHP / Codeigniter Функция пользовательской сортировки PHP, основанная на вводе строки? Как получить данные из xml в php и создать новую страницу или URL-адрес в php и показать полный контент из xml? Есть ли способ уловить ошибки MySQL и базы данных в PHP? Как я могу использовать регулярное выражение для решения этой проблемы? Как вы устанавливаете переключатель CodeIgniter, прежде чем он находится в $ _POST? Убедитесь, что пользователь вошел в систему с изменением страницы ajax Symfony2 Doctrine Qb STR_TO_DATE Неизвестная функция Когда следует закрыть соединение db? Самый простой способ отобразить текущий месяц и год, как «Aug 2016» в PHP? получение пользовательских правил таксономии должности Почему этот PHP-код (комета) не работает? Странный текст при преобразовании XML-массива в XML Как проверить на PHP, что я в статическом контексте (или нет)?

Браузер: Cookie потерян при обновлении

Я испытываю странное поведение своего приложения в браузере Chrome (без проблем с другими браузерами). Когда я обновляю страницу, cookie отправляется правильно, но с перерывами браузер, похоже, не передает cookie при некоторых обновлениях.

Вот как я установил свой файл cookie:

$identifier = / some weird string /; $key = md5(uniqid(rand(), true)); $timeout = number_format(time(), 0, '.', '') + 43200; setcookie('fboxauth', $identifier . ":" . $key, $timeout, "/", "fbox.mysite.com", 0); 

Это то, что я использую для заголовков страниц:

 header("Last-Modified: " . gmdate("D, d MYH:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Thu, 25 Nov 1982 08:24:00 GMT"); // Date in the past 

Вы видите какую-либо проблему здесь, которая может повлиять на обработку файлов cookie? Спасибо за любое предложение.

EDIT-01:

Кажется, что cookie не отправляется с некоторыми запросами. Это происходит с перерывами, и я вижу это поведение для ВСЕХ браузеров. Кто-нибудь сталкивался с такой ситуацией? Есть ли ситуация, когда cookie не будет отправлен с запросом?

EDIT-02:

Вот HTTP-заголовки:

 Request Method:GET Status Code:200 OK 

ЗАКАЖИ

 Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Referer:http://fbox.mysite.com/dashboard User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1045 Safari/532.5 

РУКОВОДИТЕЛИ РЕАГИРОВАНИЯ

 Cache-Control:no-cache, must-revalidate Content-Length:8903 Content-Type:text/html Date:Tue, 06 Apr 2010 09:25:26 GMT Expires:Thu, 25 Nov 1982 08:24:00 GMT Last-Modified:Tue, 06 Apr 2010 09:25:26 GMT Pragma:no-cache Server:Microsoft-IIS/7.5 X-Powered-By:PHP/5.3.1 ZendServer 

Еще раз спасибо за любые рекомендации.

Единственное, о чем я могу думать, увидев вашу информацию заголовка, это то, что PHP выводит что-то, прежде чем вы установите cookie. Если это так, setcookie должен возвращать значение false, и вы получите предупреждение «Не удается отправить сессию Cookie – уже отправленные заголовки». Как предлагает Bart S., включите error_reporting(E_ALL) и попробуйте вывести возвращаемое значение setcookie, чтобы проверить это это не так.

Кроме того, попробуйте использовать setcookie в базовом случае только с именем и значением и снова проверить заголовки ответов. Затем вырежьте весь свой код, за исключением setcookie, и если это сработает, принесите весь свой код обратно, используя divide and conquer 🙂

Один вопрос, одно предложение –

Вопрос: почему вы делаете число_формат (…) в time (), так как время () + 43200 должно быть достаточным.

Предложение. Посмотрели ли вы часы между клиентом и сервером. Поскольку у вас есть только 12-часовая разница между ними, если есть большой перекос или несогласие с тем, когда GMT находится между двумя машинами, вы можете обнаружить, что вы отправляете файл cookie, который должен истекать в самом ближайшее будущее.

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

Хотя проблема Chrome № 3014 в основном касается апплета Java, похоже, это то, что вы испытываете.

Я уже видел проблему, подобную этому. Я бы дважды проверял, правильный ли путь.

Я бы предположил, что www.domain.com отличается от domain.com , как и www.domain.com/ (с завершающим движением вперед-слэш)

Кроме того, убедитесь, что PHP имеет доступ для записи своих сеансов в файл с надлежащими разрешениями на запись (это другой каталог в зависимости от дистрибутива, но phpinfo() должен указать вам, какой каталог он пытается использовать.)

Раньше я сталкивался с этим. Первый не дает ошибок и, похоже, имитирует то, что вы испытываете, второе дает ошибку доступа к файлу-записи, но если ошибки не отображаются, вы можете этого не заметить.

Используется ли ваше приложение из протокола http или файла: //?

Chrome не хранит файлы cookie с локальными приложениями, и это по дизайну. Вы можете изменить это поведение с помощью командной строки:

–enable-файл-куки