我正在尝试阻止机器人发布到网站。我们运行Googles reCaptcha(v2)和蜜罐,但这些都是无效的。我怀疑他们正在使用xRumer。
无论如何,在我设置谷歌reCaptcha Beta 3之前,如果电子邮件文本字段包含“@ mail.ru”,我想做一个简单的检查以不允许提交,因为大多数提交都与电子邮件字段中的此值匹配
足够简单但不起作用。我查看了其他StackOverflow帖子,但是!==也无效。
它必须是简单的东西,但我看不到它。
首先,我们检查表单是否已提交。然后查看最后8个字符,看它们是否匹配“@ mail.ru”。我们也回应这个值以确认比较是正确的,但它仍然允许Do Something区域。
<?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>
答案 0 :(得分:0)
如@Qirel所指出的,代码中有一个错误,它是一个结束的分号
if ($emailCheck !== '@mail.ru'); {
开头的花括号之前。
Xrumer仍然阻止了我们阻止垃圾邮件帖子的尝试,但是至少可以正确回答此问题。