Один из наших сайтов был обновлен Drupal Core 7.83 до версии 7.87. Существует специальный модуль, который расширяет функциональность веб-форм для некоторых форм на сайте. Бывший разработчик написал функцию для создания уникального безопасного для URL-адреса токена base 64 с использованием openssl, указанного по длине, для веб-формы. Он используется для проверки того, $токен
представлен в форме и существует в пользовательском $_СЕССИЯ
. Эта проверка предотвращает посещение страницы подтверждения формы «Спасибо» без проверки подлинности, поскольку обработчики отправки веб-форм переопределяются для сохранения данных отправки во внешней базе данных.
Пользовательское перенаправление страницы подтверждения записывается так:
$form_state['redirect'] = array("представление формы/$nid/спасибо", array("query" => array("token" => $token)));
Который отображается в адресной строке браузера как:
www.domain.com/form-submission/1/thank-you?token=YmFzZTY0dG9rZW4=
До обновления Drupal Core все работало как положено. Однако с тех пор любые отправки, которые проходят с этим настраиваемым перенаправлением, вызывают
403 ПОЛУЧИТЬ токен=YmFzZTY0dG9rZW4=
Доступ закрыт. У вас нет прав доступа к этой странице.
При отправке формы.
Когда я изменяю
$form_state['redirect'] = array("представление формы/$nid/спасибо", array("query" => array("token" => $token)));
к
$form_state['redirect'] = array("представление формы/$nid/спасибо");
затем форма иногда переходит на пользовательскую страницу подтверждения, а иногда нет. Результаты противоречивы.
Модули веб-формы и токена обновлены.
Есть ли у кого-нибудь идеи, инструменты, советы по устранению неполадок или помощь, которой они могут поделиться?