Ответы пользователя по тегу PHP
  • Как победить куки через API Битрикс?

    @Ekaterina002 Автор вопроса
    Починила:
    //сохраняем в Битрикс сессии
    $session = \Bitrix\Main\Application::getInstance()->getSession();
    //$arElements = unserialize($APPLICATION->get_cookie('favorites'));
    $arElements = unserialize($session->get('favorites')/*$APPLICATION->get_cookie('favorites')*/);
    if(!in_array($_GET['id'], $arElements))
    {
    $arElements[] = $_GET['id'];
    $result = 1; // Датчик. Добавляем
    }
    else {
    $key = array_search($_GET['id'], $arElements); // Находим элемент, который нужно удалить из избранного
    unset($arElements[$key]);

    $result = 2; // Датчик. Удаляем
    }

    $session->set('favorites', serialize($arElements));
    /*
    $cookie = new Cookie("favorites", serialize($arElements), time() + 60*60*24*60);
    $cookie->setDomain($context->getServer()->getHttpHost());
    $cookie->setHttpOnly(false);
    $context->getResponse()->addCookie($cookie);
    $context->getResponse()->flush("");*/

    в файле component_epolog.php
    if(!$USER->IsAuthorized())
    {
    $session = \Bitrix\Main\Application::getInstance()->getSession();
    $arFavorites = unserialize($session->get('favorites'));
    //$arElements = unserialize($APPLICATION->get_cookie('favorites'));
    //$arFavorites = unserialize($APPLICATION->get_cookie("favorites"));
    //print_r($arFavorites);
    }
    и аналогично в index.php
    if(!$USER->IsAuthorized()) // Для неавторизованного
    {
    global $APPLICATION;
    $session = \Bitrix\Main\Application::getInstance()->getSession();
    $favorites = unserialize($session->get('favorites'));
    Ответ написан
    3 комментария