Страница 1 из 2

Перестали работать публичные формы в Ифрейме

Добавлено: 03 дек 2020, 22:44
Grafline
Перестали работать публичные формы в Ифрейме

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

Проблема видна в Хром новых версиях и Опера

В консоли браузера пишет вот такую ошибку

index.php?module=ext/public/form&id=8:150 [Violation] Avoid using document.write(). https://developers.google.com/web/updat ... ment-write
(anonymous) @ index.php?module=ext/public/form&id=8:150

Использую версию 2.6 BETA 2 Php 7.31

Re: Перестали работать публичные формы в Ифрейме

Добавлено: 04 дек 2020, 00:14
Grafline
Только заметил, не там написал. Не в ту версию. Ели от проблемы поможет обновление. Отпишите проведу.

Заранее спасибо

Re: Перестали работать публичные формы в Ифрейме

Добавлено: 04 дек 2020, 06:49
support
Это связано с политикой безопасности для хрома.

Вариант 1:
Откройте файл includes/applictation_top.php и найдите строку

Код: Выделить всё

@ini_set('session.use_only_cookies', (SESSION_FORCE_COOKIE_USE) ? 1 : 0);
После него добавьте строчку:

Код: Выделить всё

@ini_set('session.cookie_samesite', 'Lax');
Такое решение должно работать для 7.3.
Сообщите результат.

Re: Перестали работать публичные формы в Ифрейме

Добавлено: 04 дек 2020, 22:53
Grafline
Не помолго, возможно стоит указать None вместо Lax?

Нашел такую расшифровку.
Атрибут имеет три значения:

«Strict» — полный запрет на отправку Cookie.
«Lax» — блокируются некоторые Cookie для запросов между сайтами (изображения или iframe).
«None» — ограничения на файлы Cookie отсутствуют.

Прикладываю прин и ссылку где можно проверить, тестирую без лишнего кода чтобы избегать любых конфликтов.


Внешний домен использует пхп 7.1 Не знаю влияет ли это как то
Что важно менее месяца назад на этом и других местах все работало. То есть обновление Хром блокирует работу публичных форм повсеместно

Re: Перестали работать публичные формы в Ифрейме

Добавлено: 04 дек 2020, 23:06
Grafline
Попробовал с None Результат тот же. Подскажите что еще можно применить?

Вариант в php.ini указать значение
session.cookie_samesite = None - Тоже сделал. Результата нет

Re: Перестали работать публичные формы в Ифрейме

Добавлено: 05 дек 2020, 04:58
support
В файле /config/server.php отключить SESSION_FORCE_COOKIE_USE

Код: Выделить всё

define('SESSION_FORCE_COOKIE_USE',false);
Внешний домен использует пхп 7.1 Не знаю влияет ли это как то
Да, влияет. session.use_only_cookies только на в 7.3 есть

Re: Перестали работать публичные формы в Ифрейме

Добавлено: 05 дек 2020, 15:58
Grafline
Было true поменял на false Результата нет или вы имели в виду закомментировать ее?

Re: Перестали работать публичные формы в Ифрейме

Добавлено: 05 дек 2020, 16:55
support
Да, на false.
Ну тогда я не знаю в чем причина еще может быть.

Re: Перестали работать публичные формы в Ифрейме

Добавлено: 08 дек 2020, 15:17
Grafline
Разобрался, для апача с такими настройками все работает. СПАСИБО)
Проект стоял на Nginx для улучшения производительности. Там отдельно с конфигом надо еще видимо поработать

Re: Перестали работать публичные формы в Ифрейме

Добавлено: 08 дек 2020, 16:16
Grafline
Чтобы не делать отдельную тему хотел уточнить здесь же:
В форме используется значения полей через fields[1718]=15465
Если колонка 1718 Сущность все ок
Но если поставить пользователи ( чтобы запись назначалась сразу на нужного пользователя) То приходит пустое значение.

Может неверно пишу видел местами используется uset_id

Как в таком случае правильно прописать, в документации вроде все просмотрел надо чтобы колонка тип Пользователи 1718 = 100 например ( Айди пользователя)