Почему при заполнении формы перекидывает на страницу php и выводит ошибку?
Есть код на 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 (не ошибка, но зачем..)
См.п.3.1 Регламента.
обсудим все детили
?
Хоть бы сказали, с какого именно URL и на какой именно URL перекидывает при нажатии "Связаться со мной". Может там вообще что-то неодекватное, взятое неизвестно откуда.
Ну и смотрите логи HTTP-сервера, туда ли обращается браузер с данными из формы, и не форма ли его пересылает на страницу с 405-ой ошибкой.
P.S. Кстати, вы читали описание ошибки HTTP 405? Искали её причину?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Чтобы решить проблему с перекидыванием на страницу PHP и выводом ошибки при заполнении формы, следует внимательно изучить код, который обрабатывает отправку формы.
Прежде всего, убедитесь, что все атрибуты формы указаны правильно. Проверьте, что у формы есть атрибуты "action" и "method", которые указывают на файл PHP, обрабатывающий данные формы, и метод отправки данных (обычно "post" или "get").
Далее, проверьте код обработчика формы на стороне сервера (PHP). Убедитесь, что все переменные, полученные из формы, корректно обрабатываются и проверяются на наличие ошибок. Например, если вы используете функцию mail() для отправки электронного письма, убедитесь, что все обязательные поля заполнены и прошли проверку на корректность.
Также стоит проверить, есть ли какие-либо условия или проверки в коде PHP, которые могут вызывать перенаправление на другую страницу или вывод ошибки. Например, если есть проверка на наличие определенного значения в данных формы и в случае несоответствия выполняется перенаправление на другую страницу.
Если после проверки вы не обнаружили ошибок в коде, попробуйте добавить отладочные сообщения или запись логов, чтобы узнать, на каком этапе происходит перенаправление на страницу PHP и вывод ошибки. Это поможет вам лучше понять причину проблемы и найти ее решение.
Наконец, не забывайте также проверить файлы .htaccess, которые могут влиять на обработку запросов на сервере. Возможно, там есть какие-то правила, которые вызывают перенаправление на страницу PHP.
В целом, для решения проблемы с перекидыванием на страницу PHP и выводом ошибки при заполнении формы, следует тщательно изучить код обработчика формы на стороне сервера, проверить все условия и проверки, а также использовать отладочные инструменты для выявления причины проблемы.