Кнопка HTML HTML возвращает ошибку HTTP405 при нажатии - PullRequest
0 голосов
/ 02 июля 2019

В настоящее время я запускаю свой веб-сайт на локальном сервере через VisualStudio. Я хочу, чтобы моя контактная форма HTML (написанная в файле index.html) отправляла почту, используя PHPMailer (записанный в contact-form-handler.php), когда нажата кнопка «ПОДПИСАТЬ» в моей HTML-форме.

Когда я нажимаю кнопку, меня выводят на страницу, на которой написано «Эта страница не работает HTTP 405».

Может кто-нибудь объяснить мне, почему это происходит и как это исправить, пожалуйста.

index.html:

<form id="contact-form" method="post" action="">
       <label for="name">NAME</label>
       <input id="name" type="text" name="name" required>
       <label for="mob">MOBILE NUMBER</label>
       <input id="mob" type="text" name="mob" required>
       <label for="email">EMAIL</label>
       <input id="email" type="email" name="email" required>
       <label for="message">MESSAGE</label>
       <textarea id="message" type="text" name="message" required></textarea>
       <input class="submit-button" type="submit" value="Submit" name="submit"/>
</form> 

контакт-форма-handler.php:

<?php
if (isset($_POST['submit'])) {
    require_once('PHPMailer/PHPMailerAutoload.php');
    $mail = new PHPMailer;

    $mail->Host = 'smtp.gmail.com';
    $mail->Port = '587';
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'ssl';
    $mail->Username = 'myemailaddress@gmail.com';
    $mail->Password = 'mypassword';

    $mail->setFrom($_POST['email'], $_POST['name']);
    $mail->addAddress= 'myemailaddress@gmail.com';

    $mail->isHTML(true);
    $mail->Subject = 'Test';
    $mail->Body= '<h1> name:'.$_POST['name'].'<br> Email: '.$_POST['email'].'<br> Mobile: '.$_POST['mob'].'<br> message: '.$_POST['message'].'</h1>';

    if(!$mail->send()){
        $result="something went wrong. Please try again."; 
    }
    else{
        $result="Success!"
    }
}

?>

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Я бы прокомментировал ваш вопрос, но не могу.@RiggsFolly прав, и вам нужно указать action атрибут вашего php-файла, потому что форма должна отправить его на ваш contact-form-handler.php.Убедитесь, что вы не используете php-код в вашем index.html, потому что он не будет работать.Было бы неплохо, если бы вы добавили к своему коду вопроса из contact-form-handler.php, может быть, это поможет нам выяснить, что идет не так

0 голосов
/ 02 июля 2019

Ошибка HTTP 405 означает, что вы запросили ресурс неподдерживаемым методом, поэтому по какой-то причине ваш веб-сервер не разрешает запрос POST к вашей конечной точке.Вы можете попробовать изменить тэг формы на:

<form id="contact-form" method="get" action="">

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

...