За последние 24 часа нас посетили 22500 программистов и 1038 роботов. Сейчас ищут 782 программиста ...

Как защитить форму обратной свзязи от спама?

Тема в разделе "PHP для новичков", создана пользователем noice, 24 июн 2019.

Метки:
  1. noice

    noice Активный пользователь

    С нами с:
    7 сен 2012
    Сообщения:
    157
    Симпатии:
    0
    Надоело получать письма от спам роботов.
    На сайте есть форма стандартная емаил и текст, для посетителей:

    PHP:
    1. if(!empty($data['html_content'])&&$data['html_content']!=' '){?>
    2. <div class="pade-desc">
    3.   <?php echo $data['html_content'] ?>
    4. </div>
    5. <?php }?>
    6.  
    7. <?php if(!empty($data['error'])){?>
    8. <div class="msgError">
    9.   <?php    echo $data['error']; ?>
    10. </div>
    11. <?php }?>
    12.  
    13. <div class="feedback-form-wrapper">
    14. <?php if($data['dislpayForm']){ ?>
    15.     <p class="auth-text">Для связи с нами заполните форму ниже.</p>
    16.     <form action="" method="post">
    17.         <ul class="form-list">
    18.             <li>Ф.И.О.:</li>
    19.             <li><input type="text" name="fio" value="<?php echo !empty($_POST['fio'])?$_POST['fio']:'' ?>"></li>
    20.             <li>Email:<span class="red-star">*</span></li>
    21.             <li><input type="text" name="email" value="<?php echo !empty($_POST['email'])?$_POST['email']:'' ?>"></li>
    22.             <li>Сообщение:<span class="red-star">*</span></li>
    23.             <li><textarea class="address-area" name="message"><?php echo !empty($_REQUEST['message'])?$_REQUEST['message']:'' ?></textarea></li>
    24.         <?php  if(MG::getSetting('useCaptcha')=="true"){ ?>
    25.         <li>Введите текст с картинки:</li>
    26.         <li><img src = "captcha.html" width="140" height="36"></li>
    27.         <li><input type="text" name="capcha" class="captcha"></li>
    28.           <?php }?>
    29.         </ul>
    30.         <input type="submit" name="send" class="default-btn" value="Отправить сообщение">
    31.     </form>
    32.     <div class="clear">&nbsp;</div>
    33.  
    34.  
    35. <?php } else { ?>
    36.   <div class='successSend'> <?php echo $data['message']?> </div>
    37. <?php }; ?>
    38. </div>
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    капча же :)
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.744
    Симпатии:
    1.319
    Адрес:
    Лень
    только походу она в проверке мимо идет
     
  4. noice

    noice Активный пользователь

    С нами с:
    7 сен 2012
    Сообщения:
    157
    Симпатии:
    0
    привет.
    включил проверку.
    проверяется, в другом файле проверочный код
     
    #4 noice, 25 июн 2019
    Последнее редактирование: 25 июн 2019
  5. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    @noice
    PHP:
    1. <?php  if(MG::getSetting('useCaptcha') === true){ ?>
     
  6. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Не всё так просто. Это, однако, moguta cms
    @noice, вот, например, инструкция по установке reCaptcha (возможно, устаревшая).
    Есть ещё варианты. Например, одно из используемых в форме полей сделать hidden, и в обработчике проверять, чтобы оно не было заполнено. Соответственно, добавив поле с другим именем для информации, которая раньше передавалась в скрываемом поле.
     
    noice нравится это.
  7. noice

    noice Активный пользователь

    С нами с:
    7 сен 2012
    Сообщения:
    157
    Симпатии:
    0
    всем спасибо буду пробовать