Хак [Хак]SpeedBan

Тема в разделе "DLE", создана пользователем Goodcat, 15 окт 2008.

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

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

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

    Goodcat Постоялец

    Регистр.:
    14 фев 2008
    Сообщения:
    91
    Симпатии:
    54
    Хак SpeedBan даёт возможность в комментариях забанить пользователя 1 кликом перенеся его в группу "Забаненные".

    Можно банить юзеров.
    Можно разбазбанивать юзеров так же 1 кликом.
    Администратор не может забанить самого себя.

    Установка.

    1.Откроем /engine/modules/show.full.php
    перед

    PHP:
    if ($row['is_register'] AND $row['signature'] AND $user_group[$row['user_group']]['allow_signature']) {

    вставить
    PHP:
    ####SpeedBan
    if ($member_id['user_group']==1){
    $ban_group="6";
    $unban_group="4";
    $post_id=$row['post_id'];
    $sban="[url='index.php?newsid=.urlencode($row[]BAN[/url]";
    $tpl->set('{sban}'$sban);
    $sunban="[url='index.php?newsid=.urlencode($row[]UNBAN[/url]";
    $tpl->set('{sunban}'$sunban);

    $user_id=$row['user_id'];
    if ( 
    $_REQUEST['act'] == 'sban_'.$user_id)
    {
    if (
    $member_id['user_id']==$user_id){
    }else
    if (
    $member_id['user_group']==1){
    $db->query("UPDATE " PREFIX "_users set user_group=$ban_group where user_id='{$row['user_id']}'");
    header("Location: /index.php?newsid=$post_id");
    }
    }
    if ( 
    $_REQUEST['act'] == 'sunban_'.$user_id)
    {
    if (
    $member_id['user_id']==$user_id){
    }else
    if (
    $member_id['user_group']==1){
    $db->query("UPDATE " PREFIX "_users set user_group=$unban_group where user_id='{$row['user_id']}'");
    header("Location: /index.php?newsid=$post_id");
    }
    }
    }
    else {
    $tpl->set('{sban}'"");
    $tpl->set('{sunban}'"");
    }
    ####SpeedBan


    2.В вставленном коде редактируем в самом начале :

    PHP:
    $ban_group="6"; - Заменить на id группы забаненных.
    $unban_group="4"; - Заменить на id группы пользователей.

    3.В comments.tpl в удобном месте вставить
    {sban} - вывод ссылки бан и {sunban} - вывод ссылки на разбан.


    ;)
     
  2. baltazorg

    baltazorg

    Регистр.:
    7 авг 2008
    Сообщения:
    203
    Симпатии:
    71
    У меня после правки show.full.php вот такая ошибка выползает при просмотре полной новости:

    Использую DLE 7.0
     
  3. pathologic

    pathologic Постоялец

    Регистр.:
    6 фев 2007
    Сообщения:
    102
    Симпатии:
    13
    а можно как нибудь доработать хак и сделать вечный бан с удалением всех комментариев пользователя ?
     
  4. lifediz

    lifediz Yii Framework developer

    Регистр.:
    7 июн 2008
    Сообщения:
    385
    Симпатии:
    507
    походу ошибка в этой строке:
    PHP:
    $sunban="[url='index.php?newsid=.urlencode($row[]UNBAN[/url]";
     
  5. gentoouser

    gentoouser

    Регистр.:
    8 окт 2007
    Сообщения:
    187
    Симпатии:
    63
    текст вообще-то в посте кривоват. ссылки заменило на бб-коды

    PHP:
    1.Откроем /engine/modules/show.full.php
    перед
    if ($row['is_register'] AND $row['signature'] AND $user_group[$row['user_group']]['allow_signature']) {

    вставить
    ####SpeedBan
    if ($member_id['user_group']==1){
    $ban_group="6";
    $unban_group="4";
    $post_id=$row['post_id'];
    $sban="<a href='index.php?newsid=".urlencode($row['post_id'])."&act=sban_".$row['user_id']."'>BAN</a>";
    $tpl->set('{sban}'$sban);
    $sunban="<a href='index.php?newsid=".urlencode($row['post_id'])."&act=sunban_".$row['user_id']."'>UNBAN</a>";
    $tpl->set('{sunban}'$sunban);

    $user_id=$row['user_id'];
    if ( 
    $_REQUEST['act'] == 'sban_'.$user_id)
    {
    if (
    $member_id['user_id']==$user_id){
    }else
    if (
    $member_id['user_group']==1){
    $db->query("UPDATE " PREFIX "_users set user_group=$ban_group where user_id='{$row['user_id']}'");
    header("Location: /index.php?newsid=$post_id");
    }
    }
    if ( 
    $_REQUEST['act'] == 'sunban_'.$user_id)
    {
    if (
    $member_id['user_id']==$user_id){
    }else
    if (
    $member_id['user_group']==1){
    $db->query("UPDATE " PREFIX "_users set user_group=$unban_group where user_id='{$row['user_id']}'");
    header("Location: /index.php?newsid=$post_id");
    }
    }
    }
    else {
    $tpl->set('{sban}'"");
    $tpl->set('{sunban}'"");
    }
    ####SpeedBan


    2.В вставленном коде редактируем в самом начале :
    $ban_group="6"; - Заменить на id группы забаненных.
    $unban_group="4"; - Заменить на id группы пользователей.

    3.В comments.tpl в удобном месте вставить
    {sban} - вывод ссылки бан и {sunban} - вывод ссылки на разбан.
     
    baltazorg нравится это.
  6. baltazorg

    baltazorg

    Регистр.:
    7 авг 2008
    Сообщения:
    203
    Симпатии:
    71
    Переделал как подсказал gentoouser, полные новости нормально открываются, но теперь при попытке забанить пользователя появляется сообщение о несуществующей странице
    ID групп идентичны тем, что предложены в коде, т.е. 4 - пользователи, 6 - забаненые.
     
  7. DemanZ

    DemanZ Постоялец

    Регистр.:
    16 мар 2007
    Сообщения:
    144
    Симпатии:
    113
    Я думаю так будет правильнее:
    1.Откроем /engine/modules/show.full.php
    перед
    PHP:
    if ($row['is_register'] AND $row['signature'] AND $user_group[$row['user_group']]['allow_signature']){
    вставить
    PHP:
    ####SpeedBan
    if ($member_id['user_group'] == 1){
        
    $ban_group="6";
        
    $unban_group="4";
        
    $post_id=$row['post_id'];
        
    $tpl->set('{sban}''<a href="'.$config['http_home_url'].'index.php?newsid='.urlencode($row['post_id']).'&act=sban_'.$row['user_id'].'">BAN</a>');
        
    $tpl->set('{sunban}''<a href="'.$config['http_home_url'].'index.php?newsid='.urlencode($row['post_id']).'&act=sunban_'.$row['user_id'].'">UNBAN</a>');
        
    $user_id=$row['user_id'];
        if (
    $_REQUEST['act'] == 'sban_'.$user_id){
            if (
    $member_id['user_id'] != $user_id){
                
    $db->query("UPDATE " PREFIX "_users set user_group=$ban_group where user_id='{$row['user_id']}'");
                @
    header('Location: '.$config['http_home_url'].'index.php?newsid='.$post_id);
            }
        }
        if ( 
    $_REQUEST['act'] == 'sunban_'.$user_id){
            if (
    $member_id['user_id'] != $user_id){
                
    $db->query("UPDATE " PREFIX "_users set user_group=$unban_group where user_id='{$row['user_id']}'");
                @
    header('Location: '.$config['http_home_url'].'index.php?newsid='.$post_id);
            }
        }
    } else {
        
    $tpl->set('{sban}''');
        
    $tpl->set('{sunban}''');
    }
    ####SpeedBan
    2.В вставленном коде редактируем в самом начале :
    $ban_group="6"; - Заменить на id группы забаненных.
    $unban_group="4"; - Заменить на id группы пользователей.

    3.В comments.tpl в удобном месте вставить
    {sban} - вывод ссылки бан и {sunban} - вывод ссылки на разбан.
     
    baltazorg нравится это.
  8. baltazorg

    baltazorg

    Регистр.:
    7 авг 2008
    Сообщения:
    203
    Симпатии:
    71
    DemanZ, огромное спасибо, Ваш вариант кода работает, теперь и банит и разбанивает корректно.
     
  9. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.040
    Хак безумно нужный, но вот жаль, что использует созданные группы, а не стандартные функции...
    Намного лучше было бы использовать стандартные функции, быстрым способом заливая туду стандартные для всех банов данные...
    В последнем случае, можно забанить 10 человек к ряду, а потом залесть в админовку и подправить причины...
     
Статус темы:
Закрыта.