Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php HTML提交按钮返回';HTTP405';单击时出错_Php_Html_Phpmailer - Fatal编程技术网

Php HTML提交按钮返回';HTTP405';单击时出错

Php HTML提交按钮返回';HTTP405';单击时出错,php,html,phpmailer,Php,Html,Phpmailer,我目前正在通过VisualStudio在本地实时服务器上运行我的网站。 我希望我的HTML联系人表单(在index.HTML文件中编写)在单击HTML表单中的“提交”按钮时使用PHPMailer(在contact form handler.php中编写)发送邮件 当我点击按钮时,我会看到一个页面,上面写着 '此页面无法使用HTTP 405' 有人能给我解释一下为什么会发生这种情况,以及如何解决它吗 index.html: <form id="contact-form" method="po

我目前正在通过VisualStudio在本地实时服务器上运行我的网站。 我希望我的HTML联系人表单(在index.HTML文件中编写)在单击HTML表单中的“提交”按钮时使用PHPMailer(在contact form handler.php中编写)发送邮件

当我点击按钮时,我会看到一个页面,上面写着 '此页面无法使用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> 
<?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!"
    }
}

名称
手机号码
电子邮件
消息
联系表单处理程序。php:

<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> 
<?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!"
    }
}

表示您已使用不受支持的方法请求资源,因此出于某种原因,您的web服务器不允许向您的端点发出POST请求。您可以尝试将表单标记更改为:

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


这不是一个很好的解决方案-更好的方法是修复您的服务器配置以允许POST方法。

我会在您的问题下进行评论,但我不能@RiggsFolly是正确的,您必须将php文件置于
action
属性,因为表单必须将其发送到
联系人form handler.php
。确保不要在
index.html
中使用php代码,因为它不起作用。如果您在
联系人表单处理程序.php
中添加问题代码,那就太好了,因为您的
action=“”
属性为空,当您按下提交按钮时,您将再次运行此页面。那么,这个页面中的代码在哪里呢?如果我将其修改为:action=“contact form handler.php”,我将面临同样的问题。我将如何做呢?通过更改表单标记?至于改变你的网络服务器,我不能告诉你;您需要阅读文档并检查web服务器的配置,无论您在使用什么