@Aricus

Почему не отправляются данные post-формы при переносе на хостинг?

Есть сайт на wordpress на локальном сервере и на хостинге. Есть post-форма, которая обрабатывается на той же странице без участия самого wordpress:
echo '<form action="http://'.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"].'#spec" method="post" class="section section-calculator">
<input type="hidden" name="form" value="calculator">';

На локальном сервере всё работает как надо.
На хостинге при нажатии на кнопку отправки формы страница перезагружается, добавляется #spec к url-адресу, но не отправляется данных (var_dump($_POST); возвращает пустой массив).
Если нажать назад в браузере после отправки формы, возвращаюсь на страницу без #spec, так что редиректа, по-видимому, не было.
Если заменить post на get, данные отправляются.
Другая post-форма на сайте обрабатывается нормально.
Обе wordpress версии 5.2.3
Я вроде бы помню, как проверял эту форму после загрузки сайта на хостинг (это было чуть меньше месяца назад), но тут я могу ошибаться.
Хостинг защищён бесплатным SSL.
Ошибка сохраняется на разных компьютерах и разных браузерах, но в firefox при отправке формы всплывает окно:
Предупреждение системы защиты
Информация, введённая вами на этой странице, будет отправлена по незащищённому соединению и может быть прочитана третьей стороной.
Вы уверены, что хотите отправить эту информацию?
Продолжить/Отмена


Подскажите, в чём может быть причина, и как её исправить? Если для решения нужны дополнительные данные, напишите в комментарии.
  • Вопрос задан
  • 715 просмотров
Решения вопроса 1
Adamos
@Adamos
form action="http://'
Замените на form action="//'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
form action="http://'.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"].'#spec"
Замените на <form action=""
Ответ написан
Комментировать
anatoly_kulikov
@anatoly_kulikov
Помог ответ? Отметь решением!
Firefox неспроста показывает данную ошибку, потому что вы отправляете на незащищенный протокол, хотя сама страница открыта, видимо, в https. Да и в целом сейчас http отображается, как небезопасный.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы