malayamarisha, если мой ответ помог - отметьте его решением.
Про "только один элемент массива" не совсем понял - больше одного элемента в избранном не сохраняется? Если так - то тут надо уже разбираться что именно достаётся из кук, что отдаётся на клиента после записи, проверять что лежит в куках на клиенте и корректно ли они передаются на сервер.
Меня ещё немного смущает прямое указание списка кук в аякс-запросе. Насколько я помню jQuery.ajax и без указания headers: { Cookie: ... } сам по себе передаёт куки. Попробуйте убрать это.
Поставьте перед echo в конце файла
\Bitrix\Main\Context::getCurrent()->getResponse()->flush('');
В последних версиях Битрикса (не помню с какой точно 17 или 18), кука, выставленная через $APPLICATION->set_cookie не добавляется к заголовкам сразу, а накапливаются во внутреннем буфере и отправляются во время выполнения футера. У вас вместо подключения футера сразу идёт die(); Предоставленная строка кода выполняет отправку накопленных куки.
И, не могу удержаться и не сказать - а зачем вообще это действие для неавторизованного производить на сервере? Менять куки можно и на клиенте.
Телепаты в отпуске.
Без хоть каких-либо конфигов (webpack'а, package.json) и логов могу посоветовать вам только справиться с этой проблемой самостоятельно.
Алексей, Приведенный в вопросе код файла - реальный, он выглядит именно так? Если да - то при чем тут подключение style.css?
Указанная строка просто подключает на страницу указанный внешний css.
Сделайте так:
<style>
.centered {
margin: auto; /* Выравниваю таблицу по центру окна браузера */
}
</style>
<table width="0" cellspacing="0" cellpadding="0" class="centered">
У вас на сайте абсолютно таким же методом чужой пароль от аккаунта сменить случайно нельзя? Подменив ID редактируемого пользователя в профиле.
Всегда проверяйте любые данные, пришедшие от клиента, никогда не доверяйте ему. Валидируйте все данные, проверяйте авторизованность, права доступа, группу пользователя, добавьте защиту от CSRF (и прочитайте что это такое, если вам непонятна данная аббревиатура)
Вы уверены, что это не в браузере у вас закешировался редирект на https? Как минимум хром такое кеширует, и сразу начинает открывать https, не делая запрос к серверу на http. Откройте инструменты разработчика и поставьте галку Disable cache.
Так же полностью соглашусь. Взять от битрикса админку, механизмы импортов, Bitrix Framework, а фронт полностью писать отдельно на том, что знаете лучше. Стандартные компоненты битрикса лучше не использовать.
У вас случайно где-нибудь в php.ini не выставлено mbstring.func_overload отличный от нуля? Ловил такую ошибку когда на окружении, настроенном для битрикса (который как раз требует mbstring.func_overload=2) пробовал запустить проект на Laravel.
"работает страшно медленно" - что работает медленно - фронт? бэк?
Где именно тормозит - на отрисовке? на загрузке данных? на выборках из базы? на обработке выбранных данных?
Alex Kyznetsov, Если одинаково - то переписывать на новое. Если оставить старое - то оно будет и дальше устаревать и в следующий раз, когда потребуются доработки выполнить их будет намного сложнее.
ivankoch, Я вам дал конкретный ответ - отредактируйте меню и добавьте нужный пункт. В ходе дальнейшего обсуждения я увидел, что дал вам недостаточно информации для выполнения этого действия - и дпл вам ссылку на официальную документацию, где в видео по шагам максимально подробно показано как именно можно выполнить такую правку меню.
ivankoch, При чем тут вообще создание раздела? У битрикса меню хранится в отдельных файлах, которые можно править отдельно. Если вы пункты меню добавляли раньше только через создание разделов - то у меня для вас новость...
Про "только один элемент массива" не совсем понял - больше одного элемента в избранном не сохраняется? Если так - то тут надо уже разбираться что именно достаётся из кук, что отдаётся на клиента после записи, проверять что лежит в куках на клиенте и корректно ли они передаются на сервер.
Меня ещё немного смущает прямое указание списка кук в аякс-запросе. Насколько я помню jQuery.ajax и без указания headers: { Cookie: ... } сам по себе передаёт куки. Попробуйте убрать это.