Хак Обнаружение ссылок в поле о себе и подписи

Тема в разделе "DLE", создана пользователем mishiko, 12 мар 2014.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. mishiko

    mishiko Создатель

    Регистр.:
    5 сен 2011
    Сообщения:
    276
    Симпатии:
    117
    computer-keyboard-no-spam-key-6429328.jpg

    Этот хак позволит Вам быстро избавиться от спама в профиле пользователя. Теперь при редактировании пользователей в админ панели у Вас будет поле о себе/подпись и Вы увидите, что пользователь вписал туда .

    Хак на dle позволяет выводить данные, которые были добавленные вашими пользователями в форме Поля о себя и Подписи. Если пользователь опубликовал ссылку рекламного характера в поле о себе или в подпись Вы можете с легкостью удалить ее нажав на нужную кнопку.

    1369850115_0.jpg

    Установка хака:
    Открываем файл /engine/inc/editusers.php,
    Ищем "~563 строка":

    Код:
    <th width="112" align="center">{$lang['user_acc']}</th>
    После добавляем:
    Код:
    <th width="112" align="center">О себе/Подпись</th>
    Ищем "~574":
    Код:
    comm_num, banned
    Заменяем:
    Код:
    comm_num, banned, info, signature
    Ищем "~611":
    Код:
    &nbsp;$user_level</td>
    После ставим:
    Код:
    <td width="112 align=center">$row[info]
    ----
    $row[signature]</td>
    Ищем "~615":
    Код:
    </nobr></td>
    До этих тегов, ставим:
    Код:
    [<a class="maintitle href=?mod=editusers&action=delListItem&id=$row[user_id]" target="_blank">оч.</a>]
    Идем, в самый конец файла и находим там самый последний "}", заменяем на:
    Код:
    } elseif( $action == "delListItem" ){
        if( ! $id ) {
            die( $lang['user_nouser'] );
        }
    
        $db->query( "UPDATE " . PREFIX . "_users SET info = '', signature = '' WHERE user_id='$id'" );
    
        clear_cache();
       
        msg( "info", "Инфо поля о пользователе", "Информационные поля о пользователе успешно удалены.", "$PHP_SELF?mod=editusers&action=list" );
    }
    Очень полезно для новых сайтов, иногда в день по 100 пользователей с ссылками о себе и в подписи регистрируются. А, так наглядно можно увидеть, у кого есть ссылка, нажал на кнопку и очистил поля. Теперь Вы можете их удалить при необходимости.

    Вместо:
    Код:
    <td width="112 align=center">$row[info]
    ----
    $row[signature]</td>
    Был установлен:
    Код:
    <td width=112 align\"center\">$row[info]----$row[signature]</td>
    и все заработало... на 9.7

    ещё и
    Код:
    [<a class=\"maintitle\" href=\"?mod=editusers&action=delListItem&id=$row[user_id]
    \" target=\"_blank\">оч.</a>]
    Также в архиве представлен весь код
     

    Вложения: