【发布时间】:2016-06-07 09:28:58
【问题描述】:
我为一个网站整理了一个简单的 PHP 电子邮件表单,但它经常发送空白电子邮件。大多数字段都是“必填”的,我使用了一段时间的验证码系统,但空白电子邮件不断出现。
HTML 标记:
<form action="mail_send.php" method="post">
<input name="name" type="text" required="required" size="40" />
<input name="email" type="text" required="required" size="40" />
<input name="company" type="text" size="40" />
<textarea name="message" cols="80" rows="7" required="required"></textarea>
<input type="submit" value="Submit" />
</form>
PHP:
$name = $_POST['name'];
$email = $_POST['email'];
$company = $_POST['company'];
$message = $_POST['message'];
$formcontent=" FROM:\n $name \n\n COMPANY:\n $company \n\n MESSAGE:\n $message";
$recipient = "email address";
$subject = "Subject";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "<script>window.location = 'confirmation.php'</script>";
当我测试它时一切正常,我收到来自表单的电子邮件完全没有问题,但由于某种原因,我经常收到空白电子邮件(可能来自机器人)。
有什么想法吗?
谢谢!
【问题讨论】:
-
PHP页面和HTML页面是分开的吗?如果是这样,机器人可以直接发布到该 URL 而无需通过您的表单。我建议也做验证服务器端。
-
@user2547075 PHP 确实是独立的。
-
我建议将重复验证服务器端。永远不要相信客户! :)
-
@user2547075 我该怎么做?
-
我刚刚发布了一个答案。希望能帮助到你! stackoverflow.com/a/35656086/2547075