Почему при заполнении формы перекидывает на страницу php и выводит ошибку?

Ссылка скопирована
14 марта 2026 1 ответ

Есть код на html:

<form action="send-form.php" method="post">                     <div class="form-content">                         <h3>Отвечу на все вопросы,                              <br>обсудим все детили                              <br>проекта и план</h3>                         <input class="place-to-fill" type="text" name="name" placeholder="Ваше имя" required>                         <input class="place-to-fill" type="text" name="number" placeholder="Номер телефонаник (телеграм, ватсапп)" required>                         <input class="place-to-fill" type="text" name="email" placeholder="Ваш e-mail" required>                         <label class="custom-checkbox">                             <input type="checkbox" value="value-1">                             <span>                                  <a href="" class="checkbox">                                     Согласен на обработку персональных данных                                 </a>                             </span>                         </label>                     </div>                     <div class="form-input-btn">                         <button class="form-btn" type="submit" value="Связаться со мной">                              <p>Связаться со мной</p>                             <img class="form-btn-arrow" src="./Img and icon/ArrowDown7.svg" alt="">                         </button>                     </div>                 </form>

<form action="send-form.php" method="post"> <div class="form-content"> <h3>Отвечу на все вопросы, <br>обсудим все детили <br>проекта и план</h3> <input class="place-to-fill" type="text" name="name" placeholder="Ваше имя" required> <input class="place-to-fill" type="text" name="number" placeholder="Номер телефонаник (телеграм, ватсапп)" required> <input class="place-to-fill" type="text" name="email" placeholder="Ваш e-mail" required> <label class="custom-checkbox"> <input type="checkbox" value="value-1"> <span> <a href="" class="checkbox"> Согласен на обработку персональных данных </a> </span> </label> </div> <div class="form-input-btn"> <button class="form-btn" type="submit" value="Связаться со мной"> <p>Связаться со мной</p> <img class="form-btn-arrow" src="./Img and icon/ArrowDown7.svg" alt=""> </button> </div> </form>

и код на php

<?php if(!isset($_POST['name']) and !isset($_POST['number']) and !isset($_POST['email'])){  ?> <form action="send.php" method="post"> <input class="place-to-fill" type="text" name="name" placeholder="Ваше имя" required>                         <input class="place-to-fill" type="text" name="number" placeholder="Номер телефонаник (телеграм, ватсапп)" required>                         <input class="place-to-fill" type="text" name="email" placeholder="Ваш e-mail" required>                         <label class="custom-checkbox">                             <input type="checkbox" value="value-1">                             <span>                                  <a href="" class="checkbox">                                     Согласен на обработку персональных данных                                 </a>                             </span>                         </label>                     </div>                     <div class="form-input-btn">                         <button class="form-btn" type="submit" value="Связаться со мной">                              <p>Связаться со мной</p>                             <img class="form-btn-arrow" src="./Img and icon/ArrowDown7.svg" alt="">                         </button> </form> <?php } else {  $name = $_POST['name'];  $number = $_POST['number'];  $email = $_POST['email'];  $name = htmlspecialchars($name);  $email = htmlspecialchars($email);  $number = htmlspecialchars($number);  $name = urldecode($name);  $email = urldecode($email);  $number = urldecode($number);  $name = trim($name);  $email = trim($email);  $number = trim($number);  if (mail("egorhg4@gmail.ru", "Заявка с сайта", "Имя:".$name.". E-mail: ".$email "Телефон: ".$number ,"From: egorhg4@gmail.ru rn")){  echo "Сообщение успешно отправлено";  } else {  echo "При отправке сообщения возникли ошибки";  } } ?>

<?php if(!isset($_POST['name']) and !isset($_POST['number']) and !isset($_POST['email'])){ ?> <form action="send.php" method="post"> <input class="place-to-fill" type="text" name="name" placeholder="Ваше имя" required> <input class="place-to-fill" type="text" name="number" placeholder="Номер телефонаник (телеграм, ватсапп)" required> <input class="place-to-fill" type="text" name="email" placeholder="Ваш e-mail" required> <label class="custom-checkbox"> <input type="checkbox" value="value-1"> <span> <a href="" class="checkbox"> Согласен на обработку персональных данных </a> </span> </label> </div> <div class="form-input-btn"> <button class="form-btn" type="submit" value="Связаться со мной"> <p>Связаться со мной</p> <img class="form-btn-arrow" src="./Img and icon/ArrowDown7.svg" alt=""> </button> </form> <?php } else { $name = $_POST['name']; $number = $_POST['number']; $email = $_POST['email']; $name = htmlspecialchars($name); $email = htmlspecialchars($email); $number = htmlspecialchars($number); $name = urldecode($name); $email = urldecode($email); $number = urldecode($number); $name = trim($name); $email = trim($email); $number = trim($number); if (mail("egorhg4@gmail.ru", "Заявка с сайта", "Имя:".$name.". E-mail: ".$email "Телефон: ".$number ,"From: egorhg4@gmail.ru rn")){ echo "Сообщение успешно отправлено"; } else { echo "При отправке сообщения возникли ошибки"; } } ?>

Когда ввожу что-то в форме и нажимаю "Связаться со мной", то просто перекидывает на другую страницу и пишет: "Страница недоступна. Если проблема не исчезнет, свяжитесь с владельцем сайта. HTTP ERROR 405"

Как это исправить можно?

Дополнительно:

Разные адреса в action наводят на раздумья о том, что же на самом деле происходит.

p.s. хорошо бы исправить пачку ошибок в разметке: незакрытый div, путь к картинке (в идеале убрать в стили), p внутри кнопки, зачем-то value (не ошибка, но зачем..)

  • Адреса в action одинаковые теперь, но все равно та же самая проблема. В чем еще может проблема?
  • Не надо ставить как можно больше тэгов. Лучше оставить один, но конкретный, с которым проблема.
    См.п.3.1 Регламента.
  • Jooyless, может быть проблема в

    обсудим все детили

    ?

    Хоть бы сказали, с какого именно URL и на какой именно URL перекидывает при нажатии "Связаться со мной". Может там вообще что-то неодекватное, взятое неизвестно откуда.
    Ну и смотрите логи HTTP-сервера, туда ли обращается браузер с данными из формы, и не форма ли его пересылает на страницу с 405-ой ошибкой.

    P.S. Кстати, вы читали описание ошибки HTTP 405? Искали её причину?

  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Алексей Денисов Ответ

    Чтобы решить проблему с перекидыванием на страницу PHP и выводом ошибки при заполнении формы, следует внимательно изучить код, который обрабатывает отправку формы.

    Прежде всего, убедитесь, что все атрибуты формы указаны правильно. Проверьте, что у формы есть атрибуты "action" и "method", которые указывают на файл PHP, обрабатывающий данные формы, и метод отправки данных (обычно "post" или "get").

    Далее, проверьте код обработчика формы на стороне сервера (PHP). Убедитесь, что все переменные, полученные из формы, корректно обрабатываются и проверяются на наличие ошибок. Например, если вы используете функцию mail() для отправки электронного письма, убедитесь, что все обязательные поля заполнены и прошли проверку на корректность.

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

    Если после проверки вы не обнаружили ошибок в коде, попробуйте добавить отладочные сообщения или запись логов, чтобы узнать, на каком этапе происходит перенаправление на страницу PHP и вывод ошибки. Это поможет вам лучше понять причину проблемы и найти ее решение.

    Наконец, не забывайте также проверить файлы .htaccess, которые могут влиять на обработку запросов на сервере. Возможно, там есть какие-то правила, которые вызывают перенаправление на страницу PHP.

    В целом, для решения проблемы с перекидыванием на страницу PHP и выводом ошибки при заполнении формы, следует тщательно изучить код обработчика формы на стороне сервера, проверить все условия и проверки, а также использовать отладочные инструменты для выявления причины проблемы.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно