Код Код (Text): if($_GET['city']!=null){ $city = $_GET['city']; setcookie("City", $city, time()+3600*24*20, $_SERVER['SERVER_NAME']);/* срок действия 30 дней */ }else { $city = $_COOKIE['City']; } Передаю ГЕТ параметры которые должны изходя из этого кода сохраниться в кукисы, следущим действием открываю страничку без гет параметров, по коду они должны были подтянуться из кукисов, но этого не происходит!
city != City --- Добавлено --- PHP: <?php error_reporting ( E_ALL ); if ( filter_input ( INPUT_GET, 'city' ) ) // array_key_e... { setcookie ( 'city', $_GET['city'], strtotime ( '+30 days' ) ); } $_GET['city'] ??= $_COOKIE['city']; echo $_GET['city'];
Более или менее проблему локализовал куки почему то удаляються. Я создаю запись типа Код (Text): setcookie ( 'test', 'test', strtotime ( '+1 days' ) ); при втором обращении запись создаётся, почему при повторном не понятно с первого раза не записывается, когда я обращаюсь на страницу без установки Код (Text): setcookie ( 'test', 'test', strtotime ( '+1 days' ) ); кукисы удаляются смотрел через свойсва браузера их нет нет по этому и опа
Вообщем ситуация такая кукисы установленные через php удаляються если устанавливать через JS то спокойно существуют почему так?
и ? setcookie отсылает заголовки в браузер, а не присваивает переменной тут же значение. --- Добавлено --- что ?
Щас поясню Ситуация ещё больше становиться не понятно ))))) Кукуи перестают работать если используется if Устанавливаю куки пишу такой код Код (Text): SetCookie("gorod","проверка",time()+3600); print_r($_COOKIE); Всё ок работает куки установились всё пучком, удаляю код установки куки сохраняются, пишу следующий код используя условие Код (Text): if($_GET['city']!=NULL){ $city = filter_input(INPUT_GET, 'city', FILTER_SANITIZE_FULL_SPECIAL_CHARS); SetCookie("gorod","проверка",time()+3600); } print_r($_COOKIE); Передавая GET параметр куки устанавливаются, но без GET куки исчезают. Хорошо думаю меняю ИМЯ куков на test SetCookie("test","проверка",time()+3600); Устанавливаю их через проверку GET параметра, но GET в куки не записываю, текст по умолчанию "проверка". При добавлении GET, отображается сразу две куки test и gorod, а без GET пропадают оба. Ситуация такая что куки работают только внутри проверки if а за её пределами нет. Установленные куки внутри условия работают только внутри условия как то так получается
Вообщем работать всё начинает если указать домен SetCookie("gorod",$city, strtotime ('+30 days'), "/", "site.com");
PHP: <?php $a = rand (); SetCookie( "gorod", $a ); echo $a . PHP_EOL; print_r ( $_COOKIE ); Код (Text): 1513061286 Array ( ) Код (Text): 885869497 Array ( [gorod] => 1513061286 ) Код (Text): 1875562416 Array ( [gorod] => 885869497 ) Код (Text): После передачи клиенту cookie станут доступны через массив $_COOKIE при следующей загрузке страницы. Значения cookie также есть в $_REQUEST. --- Добавлено --- бред. версия пхп какая ?
Текущая версия PHP: 7.3.15 но уже как бы не имеет смысла, с проблемой разобрался почему именно так работает вряд ли когда то узнаю )))))