Документация для разработчиков
Темная тема

set_cookie

Описание и параметры

CMain::set_cookie(
	string name, 
	string value,
	mixed time = false,
	string folder = "/",
	mixed domain = false,
	bool secure = false,
	bool spread = true,
	mixed name_prefix = false,
	httpOnly=false
)

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

Чтобы cookie, установленная на сайте site1.ru, была доступна и на сайте site2.ru в рамках многосайтовости, в настройках браузера должно быть разрешено использование сторонних файлов cookie. Например, в Chrome это настройка «Разрешить использование сторонних файлов cookie». Если же включена опция «Блокировать сторонние файлы cookie», то cookie с site1.ru не будет доступна на site2.ru.

Параметры

ПараметрОписание С версии
name Имя cookie переменной.
value Значение cookie переменной.
time Дата в Unix-формате после которой cookie будет считаться истекшим и его значение не будет передаваться от посетителя на сайт.
Необязательный. По умолчанию - cookie устанавливается сроком на 1 год.
folder Каталог веб-сайта для которого cookie будет действителен.
Необязательный. По умолчанию - весь сайт.
domain Домен для которого cookie будет действительным.
Необязательный. По умолчанию - текущий сайт.
secure Флаг secure для устанавливаемого cookie. Если значение "true", то будет установлен как "защищенный", т.е. его значение будет возвращаться на сайт только если посетитель зашел на сайт по протоколу HTTPS.
Необязательный. По умолчанию - "false".
spread Если значение "true", то параметры установленного cookie будут запоминаться для дальнейшего его распространения по доменам (административное меню "Сайты", в настройках сайта - поле "Доменное имя").
name_prefix Префикс имени переменной cookie.
Необязательный. По умолчанию - значение параметра "Имя префикса для названия cookies" в настройках главного модуля (значение данного параметра можно получить с помощью метода:
COption::GetOptionString("main", "cookie_name", "BITRIX_SM")
httpOnly Необязательный. По умолчанию - "false".14.0.1

Примеры использования

<?
global $APPLICATION;
// устновим cookie на 2 года, действительного только для каталога /ru/
$APPLICATION->set_cookie("RUSSIAN_VISITOR_ID", 156, time()+60*60*24*30*12*2, "/ru/");
?>


Пользовательские комментарии

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

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Евгений Платонов
Сообщение не промодерировано, возможны ошибки и неточности.
Код
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if($_GET[STORE]){
    global $APPLICATION;
        $APPLICATION->set_cookie('SELECT_TT', $_GET[STORE],time()+86400*30,"/");
        $application = \Bitrix\Main\Application::getInstance();
        $context = $application->getContext();
        $context->getResponse()->flush('');
    
    //
}
10
Алексей Шкарупа
Никогда не оставляйте domain = false - это верный путь получить при разных конфигурациях разное поведение.
Если у вас в настройках сайтов прописаны домены - кука будет устанавливаться с указанием домена. В JS такую куку можно будет переопределить только указывая домен (что не всегда удобно).
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх