PHP 比较无效

PHP Comparison not working

我正在尝试阻止机器人 post 访问网站。我们 运行 Googles reCaptcha (v2) 和 Honeypot 但这些都是无效的。我怀疑他们在使用 xRumer。

无论如何,在我设置 Google reCaptcha Beta 3 之前,我想做一个简单的检查,如果电子邮件文本字段包含“@mail.ru”,则不允许提交,因为大多数提交在电子邮件字段中匹配此值。

足够简单,但无法正常工作。我查看了其他 Whosebug post 但 !== 也不起作用。

一定是简单的东西,但是我看不到。

首先我们检查表单是否已提交。然后查看最后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>

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

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

开大括号之前。

Xrumer 仍然阻止我们阻止垃圾帖子的尝试,但至少这个问题得到了准确回答。