Цитата |
---|
написал: Может знаете в чем проблема? |
24.04.2024 08:13:41
Заголовок X-Frame-Options вроде как устарел уже и браузеры его игнорируют. Вместо него работает Content-Security-Policy. Например, для разрешения показа кусков сайта в айфрейме в Битрикс24 устанавливаю исключения в конфигах nginx типа
Конфиги nginx если что примерно здесь /etc/nginx/bx/site_avaliable |
|||
|
21.04.2024 23:59:09
1. Сортировку вам придется самому делать на сервере, параметры ее вы получите из переменной $sort, в соответствии с ними пересортируете массив $list
2. скрипт работающий, хоть и устаревший. Единственное, нужно ALLOW_HORIZONTAL_SCROLL передать true, иначе в js ошибка. Скопипастил на пустую страницу, работает. Причина ошибки у вас где-то еще. 3. "хочу чтобы была возможность визуальным редактором добавлять строчки в него" - вообще то этот компонент для того, чтобы выводить сущности из БД. Можно, наверное, и такое реализовать - если скрипт прочитает на диске файл, в котором он вызывается, спарсит html код и найдет скрытую (display:none) статическую таблицу, в которую вы визуальным редактором добавляли строки, сформирует из html кода этой таблицы массив $list и отдаст его компоненту. Но это извращение. Лучше держите содержимое таблицы в БД, например, в highload блоке и там добавляйте строки. Ну или кнопка Добавить, а с нее ссылка на страницу с формой добавления элемента, которую вы сделаете на отдельной странице. Это если нужно дать возможность пользователю добавлять строки (записи в БД). |
|
|
21.04.2024 21:11:04
Цикл так пишете?
|
|||
|
12.04.2024 08:53:36
У гуглотаблиц есть API, с помощью которого их можно читать и редактировать (
|
|
|
06.04.2024 14:58:08
Зачем вы окошко браузера показываете, если скрипт кроном запускаете? Он может требовать авторизации при запуске из браузера, но прекрасно запускаться из крона. Если не запускается кроном, то смотрите в логах ошибки этого скрипта при запуске кроном, ну или можно сам скрипт посмотреть, убрать там проверку пользователя, если она там вообще есть.
|
|
|
05.04.2024 08:28:44
Есть такая практически недокументированная кука, как BX_USER_ID. Хочу ее использовать для идентификации неавторизованного пользователя для своих нужд, но поведение у нее не очень удобное:
1) при первом заходе на сайт, насколько понял, она не устанавливается, только при втором. Т.е. если неавторизованный посетитель зашел первый раз и с фронта прочитать его document.cookie, то там ее не будет 2) у авторизованного пользователя (во всяком случае, у админа), если он разлогинился и в таблице b_user не прописана это поле, то, сколько ни релоадь страницу, она не прописывается. Поправил эти неудобства тем, что на фронте js проверяет наличие этой куки и, если ее нет, то генерирует 32-значное случайное 16-ричное число и пишет эту куку. Она, кстати, в случае 2 потом подхватывается и пишется в таблицу b_user. Вроде все хорошо, но из-за недокументированности ее гложут сомнения, не сломаю ли я что-нибудь таким вмешательством. Изучать исходники для того, чтобы это понять - долгий путь. Может, лучше завести свою - но не хочется плодить сущности с дублирующим функционалом. |
|
|
25.03.2024 12:40:00
Был устранен вредоносный код, дырка для которого была в виде отдельного файла записана в папке дефолтного сайта. Возник вопрос, через что он туда был записан. Понятно, что не надо оставлять установочные скрипты в папке www, но я полагал, что уязвимость состоит в том, что можно запустить установочный скрипт, установить сайт, а дальше с админскими правами море возможностей по внедрению чего угодно. Но в данном случае установочный скрипт остался установочным скриптом, сайт не был создан. О чем это говорит - о том, что проблема была в другом - слабые пароли и т.п. или о том, что каким-то образом через установочные скрипты можно написать в эту папку свой файл и без установки сайта?
Дефолтный сайт - это то, что VM Bitrix пишет в папку www. PS Думаю, что выкладывать сюда рецепты взлома через установочные скрипты неуместно, политика форума это вряд ли поощряет)), но для общего развития было бы полезно знать о механизме этой уязвимости подробнее. |
|
|
18.03.2024 12:28:55
Я просто в ступоре в подозрении, что я php не знаю, как это может быть, что берем инстанс внутри Fuser::getSession и берем такой же инстанс снаружи и они разные. |
|||
|
18.03.2024 10:36:44
ну вот тот, который принимает запрос
компонент я уже подкостылил, но в нем практически сразу же при вызове дебажил примерно вот так
ну и в этом же месте потом в print_r выводил Application::getInstance()->getSession() - получал сессию, а если вместо нее Fuser::getSession, то null |
|||||||
|
16.03.2024 12:53:22
На сайте есть вызываемый по аякс скрипт, который добавляет товар в корзину. Перестал работать. Диагностирую, что из-за CSaleBasket::GetBasketUserID - ставлю вызов несколько раз подряд, отдает каждый раз новое значение. При вызове CSaleBasket::GetBasketUserID(true) отдает 0. Проверяю не в аяксе - работает нормально. Браузер показывает, что POST запрос уходит с куками BX_USER_ID и PHPSESSID стабильно с одинаковыми для каждого вызова аякс.
Вызываю в этом аяксовском скрипте \Bitrix\Main\Application::getInstance()->getSession() смотрю SALE_USER_ID - тот, что надо, т.е. тот, который для этого юзера Fuserid в статике. Копаю (дебажу) дальше - вызываю в скрипте Fuser::getSession (временно делаю его public) - в статике отдает объект, в аякс =null Еще дальше - вместо Fuser::getSession вызываю Application::getInstance()->getSession() - все прекрасно, сессия отдается и в статике, и при аякс запросе. Как такое может быть, что Application::getInstance()->getSession() при вызове внутри Fuser::getSession ( Ну, т.е. как подкостылить скрипт понятно - надо не обращаться сразу к CSaleBasket::GetBasketUserID, а пытаться брать сначала SALE_USER_ID прямо из сессии, но непонимание почему вышеописанное имеет место меня сильно беспокоит - почему так? |
|
|
12.03.2024 16:24:29
ну раз уж нажал, то вот вариант - перед этим циклом снять со старого $this->request данные, необходимые для создания нового экземпляра, изменить их как надо, создать новый экземпляр класса конструктором ( Ну и, понятно, дальше строку в цикле с set убрать. |
|||
|
11.03.2024 19:58:14
|
|||
|
23.02.2024 17:03:02
Рад бы помочь, сам разбираюсь сейчас с приложениями для облачной Б24, только не понимаю из вашего описания что вы делаете, какая задача стоит, кто что кому передает.
Предполагаю, что у вас есть сайт, возможно, на БУС, возможно, на каком-то еще php движке, на нем посетитель заполняет форму и задача в том, чтобы написать скрипт, который передает данные из этой формы в Битрикс24 по REST API. А портал принимает эти данные как входящий веб-хук и создает новую сущность, предполагаю, что лид. Причем, на стороне сайта вы не используете SDK CRest. Много предположений, но в любом случае я бы 1) массив запроса до обработки его функцией http_build_query логировал бы, чтобы посмотреть, что вы передаете. Действительно ли в пользовательские поля идут строки, а не массивы. Ну, просто у вас переменные с префиксами ar, которые вообще-то говорят, что это массивы. 2) на стороне портала проверил бы действительно ли поля типа UF_CRM_ - это поля лида, а не сделки, например. 3) принимал ответ портала, логировал бы его и смотрел бы там текст ошибки Извините, если это банальщина, которую вы уже проверили, но вы же не написали, что вы сделали для диагностики проблемы, что нет, поэтому лучше начать с самых простых шагов. PS начал бы с пункта 3 |
|
|
13.02.2024 11:45:19
Видимо, никак. Логично было бы пробрасывать команду на редактирование методом BX24.placement.call, но соответствующего аргумента не нашел, видимо, не реализовано.
Поэтому, если нужно переключение интерфейса поля между режимами просмотра и редактирования, нужно реализовывать его на стороне приложения. Сохранять через апдейт сущности методами rest со стороны приложения. Так и сделал, в принципе нормально работает. |
|
|
11.02.2024 20:20:57
Зарегистрировал свой тип поля, написал внешний обработчик, все нормально отображается в карточке в режиме MODE:"view". Хорошо бы теперь поле переключить в режим редактирования, который у обычного поля включается по клику. Но iframe, конечно же, не передает событие клика в родительский элемент и ничего по клику не происходит.
Как переключить поле в режим редактирования? Должен же быть какой-то способ, иначе зачем этот метод встраивания вообще делали. |
|
|
09.02.2024 10:03:18
функция each удалена из php 8, переписывайте этот кусочек используя, например, foreach Ну и так далее со всем ошибками, которые возникнут, последовательно их устраняя, добьетесь того, чтобы все заработало. |
|||
|
09.02.2024 09:33:51
Теперь, конечно, задача, поставленная топикстартером решается просто и цивилизованно. |
|||
|
08.02.2024 19:56:57
ну так у вас написано, куда копать -
/local/php_interface/include/Digital/OnlyDigitalGoods.php:111 там класс OnlyDigitalGoods , его метод extractParams должен принимать аргументом тип Bitrix\Sale\Internals\Entity , а не Bitrix\Sale\Internals\CollectableEntity как у вас. Попробуйте для начала поменять и посмотрите, что получится. |
|
|