使用 php 将表单发送到我的电子邮件。提交表单时出现 405 Not Allowed 问题
Posted
技术标签:
【中文标题】使用 php 将表单发送到我的电子邮件。提交表单时出现 405 Not Allowed 问题【英文标题】:Using php to send form to my email..Having an issue with 405 Not Allowed when form is submitted 【发布时间】:2016-04-24 07:14:54 【问题描述】:从我创建的表单中获取数据并通过 php 将其传递到我的电子邮件时遇到问题。这是http://kapena.github.io/pp_web/#contact-pp表格的链接
这是确切的问题.. 当我单击表单按钮上的提交时,我收到此错误消息说..
我目前在 gh-pages 上托管此构建
我对此进行了一些研究,并找到了错误 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>
【问题讨论】:
$mail(
是不是打错字了?不应该有 $
我进行了调整,但提交表单时仍然抛出错误..没有收到任何电子邮件
【参考方案1】:
我之所以这样做是因为你在 github 服务器上开发,而他不允许发布 POST 更改代码 HTML:
<form action="submit_form.php" method="get" id="spaceing" data-abide>
PHP 将 $_POST 更改为 $_GET 但长度存在问题,因为所有数据都在 URL 中发送。
如果你想让公共页面正常服务器返回到 POST 方法
【讨论】:
【参考方案2】:我修改了你的代码,发现很多错误。正确的代码如下:- 在您的代码中发现以下错误 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>
【讨论】:
你能否详细说明第五点。在我看来,您谈论的是将表格发送到的电子邮件地址。 “brentw.white@kapena.github.io” 【参考方案3】:看http://php.net/manual/en/function.mail.php
$mail($recipient, $subject, $mailBody, "From: $name <$email>");
$mail is not variable is function then
mail($recipient, $subject, $mailBody, "From: $name <$email>");
【讨论】:
感谢您对它的全新关注。我做了调整,但它仍然抛出错误 405。以上是关于使用 php 将表单发送到我的电子邮件。提交表单时出现 405 Not Allowed 问题的主要内容,如果未能解决你的问题,请参考以下文章