Cookie в php

12
neov
На сайте с 15.02.2005
Offline
95
768

Как известно в php после установки куков они становятся доступны при следующей загрузке страницы в массиве $_COOKIE[]. Есть ли решение, позволяющее получить доступ к кукам уже на странице их установки?

Пример. В заголовке страницы устанавливается кука, в которую записываются данные из базы+результат сложных вычислений (которые желательно произвести один раз для данного пользователя). Затем в нескольких php-модулях этой страницы эти данные выбираются из куки.

LEOnidUKG
На сайте с 25.11.2006
Offline
1743
#1
Как известно в php после установки куков они становятся доступны при следующей загрузке страницы в массиве $_COOKIE[]. Есть ли решение, позволяющее получить доступ к кукам уже на странице их установки?

В первом предложении уже ответ. Копайте в сторону JS

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
neov
На сайте с 15.02.2005
Offline
95
#2

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

Но вот пример:

echo '
<script type="text/javascript" src="cookie.js"></script>
<script type="text/javascript">
var dateNow = new Date();
dateNow.setFullYear(dateNow.getFullYear() + 1);
setCookie(\'test123\', 123, dateNow, \'/\');
</script>
';

if (isset($_COOKIE['test123'])) echo $_COOKIE['test123'];

Который ничего не выводит при первом запуске.

А как, используя js, передать куку в php-переменную, не знаю..

McHost Support
На сайте с 13.09.2008
Offline
6
#3
neov:
Как известно в php после установки куков они становятся доступны при следующей загрузке страницы в массиве $_COOKIE[]. Есть ли решение, позволяющее получить доступ к кукам уже на странице их установки?

Можно использовать динамическую перезагрузку страницы. Пользователь не заметит.

AJAX в этом поможет.

McHost.ru (http://www.mchost.ru/) Хостинг сознаний, искусственный интеллект, телепортация (http://xxii.mchost.ru/)
I
На сайте с 29.04.2006
Offline
135
#4

Я поступаю проще. Пишу не только в куку, но и в дополнительную переменную. И можно использовать эту переменную дальше, не думая о куке...

Гораздо проще, чем всякие там JS и Ajax..

LEOnidUKG
На сайте с 25.11.2006
Offline
1743
#5
neov:

Но вот пример:

JS выполняется у пользователя, а ПХП на серваке.

neov
На сайте с 15.02.2005
Offline
95
#6

А перезагрузка на поисковиках не отразится?

LEOnidUKG
На сайте с 25.11.2006
Offline
1743
#7
ipconfig:
Я поступаю проще. Пишу не только в куку, но и в дополнительную переменную. И можно использовать эту переменную дальше, не думая о куке...

Гораздо проще, чем всякие там JS и Ajax..

Ну можно в сессию запихать и не парится

neov
На сайте с 15.02.2005
Offline
95
#8
ipconfig:
Я поступаю проще. Пишу не только в куку, но и в дополнительную переменную. И можно использовать эту переменную дальше, не думая о куке...

Гораздо проще, чем всякие там JS и Ajax..

Идея неплохая и логичная, но при многомодульной структуре проблематично использовать глобальные переменные.

neov добавил 17.09.2008 в 19:07

LEOnidUKG:
Ну можно в сессию запихать и не парится

А примерчик можно?🚬

LEOnidUKG
На сайте с 25.11.2006
Offline
1743
#9
NB
На сайте с 14.09.2004
Offline
95
#10

Зачем мудрить? Присваивайте соответствующему элементу массива $_COOKIE значение напрямую, если оно еще не установлено.

E.g.


if (!isset($_COOKIE['test'])) $_COOKIE['test']=$value;
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий