Intereting Posts
Post / Redirect / Получить решение только для обновления страницы? Папка PHP Sessions: обновите продукт, если он уже является идентификатором сеанса Несколько форм и один приемник PHP jquery для извлечения содержимого из выбранной строки в php PHP: file_get_contents ($ loc) не работает PHP – get_headers () возвращает неверный результат, если символы не UTF находятся в URL-адресе Как использовать KNPPaginatorBundle для разбивки на страницы с использованием репозитория Doctrine? Нажав на ссылку, вы увидите ее в Разном Div на той же странице МЕНЬШЕ CSS & Symfony – Динамическое изменение цветовых схем Неустранимая ошибка: класс не найден в AppKernel.php Карта Mongo Сократите первый раз Сценарий для записи файла htaccess с добавлением фантомного неизвестного символа, вызывающего ошибку 500 URL-адрес Rewriting OpenCart Продукты SEO Как получить уникальные значения из столбца и сгруппировать их со значениями из другого столбца? PHP и доступ к ComplexType в веб-службе SOAP

Куки-файлы не сохраняются в PHP?

Как получить куки-файлы для сохранения в php?


give_cookie.php

<?php if (!isset($_COOKIE["muffin"])) setcookie("muffin", "55", 100 * 60 * 60 * 24 * 30); $_COOKIE["lid"]=true; ?> 

jar.php

 <?php var_dump($_COOKIE); if($_COOKIE["lid"]) echo "open"; ?> 

Выполнение кода в этом порядке дает мне вывод:

array (0) {} Примечание: Неопределенный индекс: lid в jar.php в строке 3

jar.php кода из jar.php в give_cookie.php дает мне вывод:

array (1) {["lid"] => bool (true)} open

Вы должны указывать временную метку UNIX, когда файл cookie будет истек (рассчитан с эпохи) в качестве третьего аргумента функции вызова функции.

Время истечения срока действия файла cookie. Это временная метка Unix, так что это количество секунд с эпохи. Другими словами, вы, скорее всего, установите это с помощью функции time () плюс количество секунд, прежде чем вы захотите, чтобы она истекла. Или вы можете использовать mktime (). time () + 60 * 60 * 24 * 30 истечет через 30 дней. Если установлено значение 0 или опущено, файл cookie истекает в конце сеанса (когда браузер закрывается).

Я предлагаю вам ознакомиться с документацией для setcookie .

вы устанавливаете файл cookie для muffin и пытаетесь извлечь lid Вам также нужно установить setcookie для lid .

я думаю, что время, которое вы настраиваете, все еще в прошлом

В данный момент

 time() = 1348584550 100 * 60 * 60 * 24 * 30 = 259200000 

поэтому постарайтесь

 setcookie("muffin", "55", time() + (100 * 60 * 60 * 24 * 30)); if($_COOKIE["muffin"]) echo "open"; 

Другие ответы правильные, но есть еще одно соображение. Cookies устанавливаются, когда сервер отправляет html клиенту , и они получаются от пользователя, когда пользователь запрашивает страницу . Это означает, что если вы попытаетесь прочитать cookie, который вы только что установили правильно , он будет пуст до следующего раза, когда пользователь перезагрузит страницу. Единственный способ избежать этого – как вы это делали, не уверен, намеренно или нет, вручную назначить значение cookie и установить его одновременно, поскольку он является суперглобалистом. Это не является хорошей практикой, так как ценность Cookie теряется для этого выполнения. Это должно работать, но не много работать:

give_cookie.php

 <?php if (!isset($_COOKIE["muffin"])) setcookie("muffin", "55", 100 * 60 * 60 * 24 * 30); setcookie("lid", TRUE, time() + 100 * 60 * 60 * 24 * 30); $_COOKIE["lid"]=TRUE; ?> 

jar.php

 <?php if($_COOKIE["lid"]) echo "open"; ?> 

PS, у вас еще много проблем с вашим кодом (кроме того, он ничего не полезен). Расскажите нам, чего вы пытаетесь достичь, чтобы мы могли помочь вам немного больше.