Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как получить cookie в обработчике формы? $_COOKIE не работает в обработчике, но работает в других местах - почему?

Иван Иванов Ученик (4), на голосовании 3 года назад
Если на самой веб странице попытаюсь вывести $_COOKIE['utm_term'] то это удастся. Но когда в обработчике формы handler.php попытаюсь получить $_COOKIE['utm_source'], то это ничего не даст. Почему так происходит и как получить куки в обработчике формы?
Голосование за лучший ответ
Александр Гуру (3372) 3 года назад
Причин может быть много, нужно видеть код. Могу посоветовать куда копать :
1. Сделать вывод куков без конкретизации ['utm_source'], посмотреть вообще что там. Может добавит ясности.
2. Всегда есть другой путь, не стоит зацикливаться на одном решении, сделай невидимый input и записывай в него данные из ['utm_source'], он прилетит к обработчику как и остальные поля
Иван ИвановУченик (4) 3 года назад
1. В обработчик не приходит массив $_COOKIE почему то. В function.php WordPress с этим массивом можно работать, а в мой обработчик send.php этот массив $_COOKIE вообще не поступает.
2. Решил проблему другим способом. Невидимый инпут у меня уже был но задействовал проверку, если в $_GET есть utm метка, значит надо брать оттуда, пока пользователь не начал ходить по страницам сайта. А если начал и в $_GET меток уже нет, то надо проверять $_COOKIE в fuction.php - в итоге все подводные камни обходятся и все работает корректно.
Сосиска в тесте Мыслитель (5514) 3 года назад
Дело в том что после рефреша только куки видны. Они не сразу видны.

ты отправил форму, в обработчике записал куки, обновил и они появились.
Иногда надо писать session_start(), куки привязываются к сессиям либо наоборот.
Иван ИвановУченик (4) 3 года назад
Массив $_COOKIE в обработчик почему то не приходит вообще. Только $_POST.
Самый День Оракул (99750) 3 года назад
$_POST массив высылает форма на сайт, из неё данный

$_COOKIE массив форма НЕ высылает, $_COOKIE мы берём с компьютера пользователя.

Делаем так
1. записываем куки на его комп
2. на переходе ко второй странице ищем эту куки
Иван ИвановУченик (4) 3 года назад
Это хорошо что $_COOKIE берется с компьютера, а не с формы - то что надо. Вот только когда происходит обращение к send.php на моем сайте и он начинает выполняться, то при обращении к массиву $_COOKIE там ничего не находится... Но это только в моем send.php, а в файле function.php вордпресса - с $_COOKIE все в порядке.
Похожие вопросы