繁体   English   中英

使用php将表单发送到我的电子邮件。提交表单时出现405不允许的问题

[英]Using php to send form to my email..Having an issue with 405 Not Allowed when form is submitted

从我创建的表单获取数据并将其通过php传递到我的电子邮件时遇到问题。 这是格式为http://kapena.github.io/pp_web/#contact-pp的链接

这是确切的问题。当我单击表单按钮上的提交时,我得到此错误消息。 错误信息

我目前在gh页上托管此版本

我对此进行了一些研究,发现了错误405的补丁,但我不知道如何在我的项目中实现此解决方案。 我只是一个初学者,需要一些指导。这是我找到的解决方法https://gist.github.com/baskaran-md/e46cc25ccfac83f153bb#file-nginx-conf

如何在我的网站中正确实施此解决方案?
这是我的php代码,因此您可以检查该代码以查看是否存在并发出导致该问题的多数民众赞成。

任何帮助将不胜感激..尝试在新的一年推出b4 :)

<?php
if($_POST["submit"]) {
$recipient = "brentw.white@gmail.com"; //my email
$subject = 'Email message from Point Plumbing';
$name = $_POST ["yourName"];
$email = $_POST["yourEmail"];
$phone = $_POST["yourPhone"];
$location = $_POST["yourLocate"];
$message = $_POST["message-me"];

$mailBody="Name: $name\nEmail: $email\n\n$message";
$mail($recipient, $subject, $mailBody, "From: $name <$email>");
$thankYou="<p>Thank you! We will be in contact with you shortly.</p>";
}
?>

我的HTML ..我觉得它与method='post'可能是问题所在吗?

<form action="submit_form.php" method="post" id="spaceing" data-abide>
        <div class="form-bg">
            <div class="row">
                <div id="name" class="large-6 medium-6 small-12 columns">
                    <label> <h5>Name</h5>
                        <input type="text" name="yourName" placeholder="What is you're name?"></input>
                    </label>
                </div>

                <div id="email" class="large-6 medium-6 small-12 columns">
                    <label><h5>Email</h5>
                        <input type="email" name="yourEmail" placeholder="Please enter in you're email."required></input>
                    </label>
                    <small class="error">An email Address is required.</small>
                </div>
            </div>

                <div class="row">
                    <div id="phone"class="large-6 medium-6 small-12 columns">
                        <label><h5>Phone</h5>
                            <input type="text" name="yourPhone" placeholder="Please enter you're phone number."></input>
                        </label>
                    </div>

                    <div id="location" class="large-6 medium-6 small-12 columns">
                        <label><h5>Location</h5>
                            <input type="text" name="yourLocate" placeholder="Where on Oahu are you currently living?"></input>
                        </label>
                    </div>
                </div>

                <div class="row">
                    <div id="message-area" class="large-12 medium-12 small-12 columns">
                        <label><h5>Message</h5>
                            <textarea id="message" name="yourMessage" placeholder="Please tell us about you're plumbing issues."></textarea>
                        </label>
                    </div>
                </div>

            <div class="row">
                <div id="submit" class="large-3 medium-3 small-3 columns">
                    <button type="submit-me">Submit</button>
                </div>
            </div>
        </div>
    </form>

看起来http://php.net/manual/en/function.mail.php

$mail($recipient, $subject, $mailBody, "From: $name <$email>");

$ mail不是变量就是函数

mail($recipient, $subject, $mailBody, "From: $name <$email>");

我修改了您的代码,发现很多错误。正确的代码如下:-在您的代码上发现以下错误1.使用if(isset($ _ POST [“ submit”])){代替if($ _ POST [“ submit”]] } {2.您为textarea使用了错误的变量名。 您应该使用$ message = $ _POST [“ yourMessage”]; 而不是$ message = $ _POST [“ message-me”]; 4.另一个错误是您的表单操作位于Submit_form.php页面,但我发现您的邮件代码位于页面顶部。 如果您想提交到另一个页面,则使用php代码来Submit_form.php页面。 5.代码的主要和重要错误我发现您在发送邮件的地方使用了Gmail电子邮件。但是如果您使用其他域电子邮件,则应使用brentw.white@kapena.github.io之类的域电子邮件由于可疑,您的邮件进入了垃圾邮件,我认为这对您有帮助,我在这里使用了您的链接: -http : //smartzonewebservices.com/mtg/del.php

<?php
if(isset($_POST["submit"])) {
$recipient = "brentw.white@gmail.com"; //my email
echo $subject = 'Email message from Point Plumbing';
echo $name = $_POST ["yourName"];
echo $email = $_POST["yourEmail"];
echo $phone = $_POST["yourPhone"];
echo $location = $_POST["yourLocate"];
echo  $message = $_POST["yourMessage"];

 $mailBody="Name: $name\nEmail: $email\n\n$message"; 

 mail($recipient, $subject, $mailBody, "From: $name <$email>");

echo $thankYou="<p>Thank you! We will be in contact with you shortly.</p>";

}
?>
<form action="" method="post" id="spaceing" data-abide>
        <div class="form-bg">
            <div class="row">
                <div id="name" class="large-6 medium-6 small-12 columns">
                    <label> <h5>Name</h5>
                        <input type="text" name="yourName" placeholder="What is you're name?"></input>
                    </label>
                </div>

                <div id="email" class="large-6 medium-6 small-12 columns">
                    <label><h5>Email</h5>
                        <input type="email" name="yourEmail" placeholder="Please enter in you're email."required></input>
                    </label>
                    <small class="error">An email Address is required.</small>
                </div>
            </div>

                <div class="row">
                    <div id="phone"class="large-6 medium-6 small-12 columns">
                        <label><h5>Phone</h5>
                            <input type="text" name="yourPhone" placeholder="Please enter you're phone number."></input>
                        </label>
                    </div>

                    <div id="location" class="large-6 medium-6 small-12 columns">
                        <label><h5>Location</h5>
                            <input type="text" name="yourLocate" placeholder="Where on Oahu are you currently living?"></input>
                        </label>
                    </div>
                </div>

                <div class="row">
                    <div id="message-area" class="large-12 medium-12 small-12 columns">
                        <label><h5>Message</h5>
                            <textarea id="message" name="yourMessage" placeholder="Please tell us about you're plumbing issues."></textarea>
                        </label>
                    </div>
                </div>

            <div class="row">
                <div id="submit" class="large-3 medium-3 small-3 columns">
                    <button name="submit" type="submit">Submit</button>
                </div>
            </div>
        </div>
    </form>

我之所以这么想是因为您在github服务器上开发,并且他不允许POST更改您的代码HTML:

<form action="submit_form.php" method="get" id="spaceing" data-abide>

和PHP将$ _POST更改为$ _GET,但是长度有问题,因为所有数据都在URL中发送。

如果要将公共页面发送到普通服务器,请返回POST方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM