Сравнение PHP не работает

Я пытаюсь запретить ботам отправлять сообщения на сайт. Мы запускаем Googles reCaptcha (v2) и Honeypot, но они неэффективны. Я подозреваю, что они используют xRumer.

Тем не менее, пока я не настроил Google reCaptcha Beta 3, я хотел сделать простую проверку, чтобы не разрешить отправку, если текстовое поле электронной почты содержит «@ mail.ru», поскольку большинство отправлений совпадают с этим значением в поле электронной почты.

Достаточно просто, но это не работает. Я просмотрел этот другой пост Переполнение стека, но! == тоже не работает.

Это должно быть что-то простое, но я этого не вижу.

Сначала мы проверяем, отправлена ​​ли форма. Затем посмотрите на последние 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>
if ($emailCheck !== '@mail.ru'); { Эта точка с запятой ; является причиной ваших проблем. Удалите это.
Qirel 18.05.2018 17:55

Qirel, вы на 100% правы. Спасибо!

Burndog 18.05.2018 17:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

до открытия скобки.

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

Другие вопросы по теме