Защита от спама без плагинов

Чтобы установить защиту на основе ложного поля для комментариев, нужно отредактировать 2-3 файла. Стандартные файлы редактируются в WordPad, некоторые файлы в темах лучше открываются в блокноте.

В любом случае сделайте резервные копии, прежде чем что-то менять. Зачастую даже отмена всех изменений не восстанавливает первоначальный файл, если он был сохранен не подходящей программой.

Все эксперименты проводим на локальном сервере своего ПК . Если Вы еще не установили, скачайте Джентльменский набор web-разработчика, включающий поддержку PHP и пр. и установите на свой ПК.

  1. В файл Вашей активной темы comments.php (папка wp-content/themes/Ваша тема) в форму для комментариев (ближе к концу файла) добавляем дополнительное (ложное) поле:
    <p><input type="text" name="email" id="email" value="" size="22" tabindex="2" />
    <label for="email"><small>Оставьте это поле пустым, если Вы не робот</small></label></p>
    Ложное поле, видимое для посетителей, не пропустило за неделю ни одного робота (может, не приходили ).
    Этот вариант подходит тому, кто убрал из формы комментариев адрес e-mail или URL.

    ***Если Вы хотите сделать ложное поле невидимым для людей, добавляем класс:
    <div class="lp">
    <p><input type="text" name="email" id="email" value="" size="22" tabindex="2" />
    <label for="email"><small>Оставьте это поле пустым</small></label></p>
    </div>
    ***Вставляем это поле перед настоящим E-mail, заменив значения "name" и "id" настоящего поля на любое свое:
    <p><input type="text" name="your" id="your" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" />
    <label for="email"><small><?php _e('Mail (will not be published)');?> <?php if ($req) _e('(required)'); ?></small></label></p>

    Код, выделенный зеленым цветом, можно заменить на url или другое поле.

    ***Код, выделенный красным цветом, нужно заменить на свое сочетание символов.

    Если Вы не используете настоящее поле e-mail или URL, можно не менять .

  2. ***Добавленный нами класс в таблице стилей темы style.css добавляем как невидимый:
    .lp{ display: none; }
  3. В корневой папке блога в файл wp-comments-post.php перед присвоением значений полей в строках 50-54
    $comment_author       = ( isset($_POST['author']) )  ? trim(strip_tags($_POST['author'])) : null;
    $comment_author_email = ( isset($_POST['email']) )   ? trim($_POST['email']) : null;
    $comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;
    $comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;
    добавляем код:
    $spam_test_field = trim($_POST['email']);
    if(!empty($spam_test_field))
    wp_die( __('Error: spam!') );
    (проверяет ложное поле на заполненность и, если оно не пустое, выдается сообщение об ошибке).

    ***Если Вы заменяли наименования "name" и "id" настоящего поля, ставим измененные значения в нужную строку, например:
    $comment_author       = ( isset($_POST['author']) )  ? trim(strip_tags($_POST['author'])) : null;
    $comment_author_email = ( isset($_POST['your']) )   ? trim($_POST['your']) : null;
    $comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;
    $comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;



Алкотестеры и алкометры

Миниатюрный DRIVESAFE, а также корейский АЛ 6000. Выносливый алкотестер. Отзывы.


       

Главная    Блог    Объявления    Статьи    Контакты            © 2009–2012 S-konda.ru