Мгновенная установка кук в PHP
Для того, чтобы установленная кука сразу
появилась в массиве $_COOKIE
можно
использовать хитрый прием.
Суть приема следующая: сначала установим
куку с помощью setcookie
, а потом
вручную запишем ее в массив $_COOKIE
:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // сразу выведет 'eee'
?>
Чтобы кука каждый раз не отправлялась в браузер, можно запись куки сделать внутри условия. Если такой куки нет, то запишем ее:
<?php
if (!isset($_COOKIE['str'])) { // если куки нет
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // выведет 'eee'
?>
Давайте обсудим как это работает. При первом
заходе на страницу мы попадем в if
,
установим куку в браузер и сразу запишем
в $_COOKIE
. Далее через echo
выведется вручную записанное нами значение.
При следующих заходах на страницу мы не попадем
в if
, но в $_COOKIE
будет содержаться
наша кука, уже пришедшая из браузера.
Таким образом, и при первом заходе, и при
последующих в $_COOKIE
будет находится
наша кука.
Опробуйте описанный прием.