【发布时间】:2018-05-18 15:52:02
【问题描述】:
我正在尝试阻止机器人发布到网站。我们运行 Googles reCaptcha (v2) 和 Honeypot,但这些都无效。我怀疑他们正在使用 xRumer。
无论如何,在我设置 Google reCaptcha Beta 3 之前,我想做一个简单的检查,如果电子邮件文本字段包含“@mail.ru”,则不允许提交,因为大多数提交都与电子邮件字段中的此值匹配.
足够简单,但它不起作用。我查看了另一个 StackOverflow 帖子,但 !== 也不起作用。
一定很简单,但我看不到。
首先我们检查表单是否已提交。然后查看最后 8 个字符,看它们是否匹配“@mail.ru”。我们还回显该值以确认比较是否正确,但它仍然允许“做某事”区域。
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") {
// post so do check
$emailCheck = substr($_POST['email'], -8);
if ($emailCheck !== '@mail.ru'); {
?>
做某事 - 只有在 $emailCheck 不匹配时才插入
关闭检查
<?php } } ?>
HTML
<form name="form1" method="post" action="">
<p> </p>
<p><input name="email" type="text" id="email"></p>
<p> </p>
<p>
<input type="submit" name="submit" id="submit" value="Submit">
</p>
<p>Email Check: <?php echo $emailCheck; ?></p>
</form>
【问题讨论】:
-
if ($emailCheck !== '@mail.ru'); {那个分号;是导致您出现问题的原因。删除它。 -
奇瑞尔,你是 100% 正确的。谢谢!
标签: php spam-prevention