Задать вопрос
@SergeyZaigraev
веб-программист

COOKIE. Почему не работают методы $APPLICATION->set_cookie() и $APPLICATION->get_cookie()?

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

<?require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");

   $APPLICATION->set_cookie("USER_CITY","city");

echo "<pre>";
   print_r($_COOKIE);
echo "</pre>";


и в массиве с куками нет куки с нужным мне ключом, подскажите как можно решить этот трабл ?

и странно то, что еще и просто через <? setcookie('USER','asdas');?> не ставиться кука, у сайта несколько алиасов, пока даже мыслей нет в чем может быть дело...
  • Вопрос задан
  • 3568 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Cookie станут видимыми только после перезагрузки страницы, для которой они должны быть видны. Для проверки, правильно ли cookie установились, проверьте их при следующей загрузке страницы до истечения срока их действия. Срок действия cookie задается в параметре expire. Удобно проверять существование cookie простым вызовом print_r($_COOKIE);.
php.net/manual/ru/function.setcookie.php
Ответ написан
@vaajnur
битриксоид
замена
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_after.php');
на
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");

помогло. Кстати, куки в битриксе записывать так

$APPLICATION->set_cookie("favorites",serialize($arElements), time()+60*60*24*30*12*2, "/");
$APPLICATION->get_cookie('favorites')
еще доступны так

$_COOKIE["BITRIX_SM_favorites"]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы