Запрет в комментариях на ник админа

Версия движка: WordPress 2.3.1
Интерисует: Сталкнулся вот с такой проблемой. ПКода пользователь оставляет комментарий под гостем он может указать любой ник, включая ники зарегестированных пользователей и ник Админа! Как можно запретить гостям пользоваться никами зарегистрированных юзеров? Я поискал по форуму но ничего похожего не нашел… может конечно плохо искал… но решился создать тему :rolleyes:

Тоже была такая проблема… можно просто добавить ник админа в список модерирования (Настройка -> Обсуждение: Модерирование комментария), тогда сначала нужно будет одобрить коммент и только после этого он появится на сайте

Спасибо… а существуют ещё решения… что-нибудь подобие php спритика небольшого на проверку введенных символов в поле…?

Спасибо... а существуют ещё решения... что-нибудь подобие php спритика небольшого на проверку введенных символов в поле...?

а вот тебе и код….. — смысл такой: если введенный ник существует в базе юзеров, то сразу же нужно будет ввести другой ник….

—-Установка—–

открой в корневой части сайта файл wp-comments-post.php и найди там 51 строку…. она начинается со строки if ( get_option(‘require_name_email’) && !$user->ID ) {

там ты увидешь вот такой код:

if ( get_option('require_name_email') && !$user->ID ) {
    if ( 6 > strlen($comment_author_email) || '' == $comment_author )
        wp_die( __('Error: please fill the required fields (name, email).') );
    elseif ( !is_email($comment_author_email))
        wp_die( __('Error: please enter a valid email address.') );
}

замени ее на вот этот:

if ( get_option('require_name_email') && !$user->ID ) {

    $usr = $wpdb->query("SELECT * FROM `wp_users` where `user_login`='$comment_author'");

    if ( 6 > strlen($comment_author_email) || '' == $comment_author )
        wp_die( __('Error: please fill the required fields (name, email).') );
    elseif ( !is_email($comment_author_email))
        wp_die( __('Error: please enter a valid email address.') );
    elseif($usr == 1){wp_die( __('This name is already exist! Please, change your name and try again.') );}

}

… установка завершена))))…. должно работать!!!!

Должно, но не работает) В чем может быть проблема?

а что происходит??? …… я проверил у себя….. все работает!!!!!

Проблема может быть в чем угодно. От частного `wp_users` вместо более общего $wpdb->users и до…
Кстати, elseif($usr == 1) мне тоже не нравится. 😉

Проблема может быть в чем угодно. От частного `wp_users` вместо более общего $wpdb->users и до...
Кстати, elseif($usr == 1) мне тоже не нравится. ;)

я написал это сходу…. вроде все ок……

можно еще аккуратнее написать…

$usr = $wpdb->query("SELECT * FROM $wpdb->users where `user_login`='$comment_author'");

вроде срабатывает….. elseif($usr == 1) если дает значение 1 то такой юзер существует….

я проверял этот код на wp2.3.1 wp2.3.3….. все работает

Благодарю! Все заработало… Предлагаю подвести итог для будущих поколений)

Необходимо: Запретить гостям оставлять комментарии от имени администатора и зарегистрированных пользователей

Решение:
Вариант #1:
От человека с ником Danie1 поступил такой способ.
Добавить ник админа в список модерирования (Настройка -> Обсуждение: Модерирование комментария), тогда сначала нужно будет одобрить коммент и только после этого он появится на сайте.

Но мы пошли дальше 🙂

Варинт #2:
И благодарим ozono за php код для решения этой задачи.
Cмысл такой: если введенный ник существует в базе юзеров, то сразу же нужно будет ввести другой ник….

—-Установка—–

Открой в корневой части сайта файл wp-comments-post.php и найди там 51 строку, она начинается со строки if ( get_option(‘require_name_email’) && !$user->ID ) {
там ты увидешь вот такой код:

if ( get_option('require_name_email') && !$user->ID ) {
    if ( 6 > strlen($comment_author_email) || '' == $comment_author )
        wp_die( __('Error: please fill the required fields (name, email).') );
    elseif ( !is_email($comment_author_email))
        wp_die( __('Error: please enter a valid email address.') );
}

Замени его на вот этот:

if ( get_option('require_name_email') && !$user->ID ) {

    $usr = $wpdb->query("SELECT * FROM $wpdb->users where `user_login`='$comment_author'");

    if ( 6 > strlen($comment_author_email) || '' == $comment_author )
        wp_die( __('Error: please fill the required fields (name, email).') );
    elseif ( !is_email($comment_author_email))
        wp_die( __('Error: please enter a valid email address.') );
    elseif($usr == 1){wp_die( __('This name is already exist! Please, change your name and try again.') );}
}

…установка завершена…

Как я понял. тут идет проверка имени (логина) и емейла из базы?
а без емейла можно сделать? у меня просто сайт в интранете там нет поля электронной почты в комментариях вообще
но нужно защититься 🙁 заранее спасибо

Решил проблему, скормив WP при добавлении комментария скрытую заполненную почтовую форму 😉

Как я понял. тут идет проверка имени (логина) и емейла из базы?
а без емейла можно сделать? у меня просто сайт в интранете там нет поля электронной почты в комментариях вообще
но нужно защититься :( заранее спасибо

Решил проблему, скормив WP при добавлении комментария скрытую заполненную почтовую форму ;)

а ты убери моменты где есть мейл проверка и условия!!!!

ozono я пробовал так.. не выходит.. точнее я не смог убрать проверку на почту… тут хитро как то….
если убираю проверку и выключаю введение почты в комментариях
в WP не работает, включаю, WP начинает ругаться на отсутствие почты….

Anonymous
Отправить
Ответ на: