Сравнение PHP не работает - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь остановить размещение ботов на сайте.Мы запускаем 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>&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 голосов
/ 23 декабря 2018

Как заметил @Qirel, в коде произошла ошибка, которая была закрывающей точкой с запятой

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

до открытия Brace.

Xrumer по-прежнему препятствует нашим попыткам заблокировать спам-сообщенияно по крайней мере на этот вопрос точно дан ответ.

...