【发布时间】:2014-05-02 06:34:47
【问题描述】:
我在 wordpress 中建立一个网站,通常使用 contactform7 插件来处理表单,但我正在尝试学习如何在不依赖插件的情况下设置表单。我最近在这方面取得了成功,但在这个最新的网站上,我的内容正在发送给收件人。我收到一封电子邮件,但没有发送表单中的任何值。
这是我的表单(我知道我还必须了解验证/清理,这将是另一个主题!):
<form action="<?php echo home_url('/'); ?>sent/" method="POST" class="col-sm-7">
<input id="name" placeholder="name:" name="name" type="text" class="form-control" required></label>
<input id="email" placeholder="email:" name="email" type="text" class="form-control" required>
<textarea id="message" placeholder="message:" name="message" class="form-control" rows="8" required></textarea>
<button id="contact-submit" type="submit" class="btn form-control">Submit</button>
</form>
当用户按下提交时,页面重定向到该文件中的 url/sent/ 我有这个:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name, $email, \nMessage: $message";
$recipient = "myemail@email.com";
$subject = "Contact Form Submission";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
?>
现在,当我在收件箱中收到电子邮件时,它会显示如下:
发件人: , , 留言:
就是这样。我在这里有什么明显的遗漏吗?一如既往,我们非常感谢任何帮助。
谢谢!
添加说明:似乎当按下提交按钮并且页面重定向时,它正在拉一个 404,尽管它重定向到的 url 实际上是正确的,即使我只是刷新页面而不更改它丢弃的 url 404 并加载页面内容。我想这就是为什么没有发送内容的原因,但是为什么会这样呢?
【问题讨论】:
-
如果可以,请尝试使用浏览器的调试工具验证 HTTP 请求实际上包含变量并且它们不会被某些 JavaScript 魔法删除。附带说明一下,在邮件标题中设置未经过滤的用户内容只是乞求脚本被垃圾邮件发送者滥用。至少对其中的电子邮件地址进行一些正式的验证。
-
不幸的是,我不确定如何检查@Janoszen 的任何建议?验证/卫生是我名单上的下一个。谢谢!
-
你用的是什么浏览器?他们中的大多数可以检查他们发送的 POST 请求。 Here's an example with the Chrome developer tools.