PHP比较无法正常工作

时间:2018-05-18 15:52:02

标签: php spam-prevention

我正在尝试阻止机器人发布到网站。我们运行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>&nbsp;</p>
    <p><input name="email" type="text" id="email"></p>
    <p>&nbsp;</p>
    <p>
        <input type="submit" name="submit" id="submit" value="Submit">
    </p>
    <p>Email Check: <?php echo $emailCheck; ?></p>
</form>

1 个答案:

答案 0 :(得分:0)

如@Qirel所指出的,代码中有一个错误,它是一个结束的分号

 if ($emailCheck !== '@mail.ru'); { 

开头的花括号之前。

Xrumer仍然阻止了我们阻止垃圾邮件帖子的尝试,但是至少可以正确回答此问题。