Все для DataLife Engine / DLE хаки / Хак для DLE / Хак DLE возможность удаление своего аккаунта

Хак DLE возможность удаление своего аккаунта



Представляем на dle9.com хак DLE возможность удаление своего аккаунта на сайте, по умолчанию на платформе DataLife Engine 9.x - 12.1 пользователь не может удалить свой аккаунт, данная реализации решает эту проблему, при этом публикации и комментарии будут не тронутыми. В новой версии хака, если пользователь выбрал удалить аккаунт в профиле, то это произойдет в течение 30 календарных дней, пока идет отчет, есть время для того, чтобы выполнение команды на полное удаление анкеты и аккаунта можно было прекратить.

Установка хака удаление своего аккаунта на DLE (Account delete):
Выполнить запрос:

ALTER TABLE dle_users ADD `user_act` int(6) DEFAULT '0' NOT NULL


Открыть engine/modules/profile.php, найти:

$tpl->set( '{ip}', $_IP );


Выше вставить:

// user delete by qnut
 if( $member_id['user_id'] == $row['user_id'] and $row['user_group'] >= 4) {
 $user_delete = "<input type=\"checkbox\" name=\"user_delete\" id=\"user_delete\" value=\"yes\"> <label for=\"user_delete\">Удалить аккаунт</label>";
 $id = $row['user_id'];
 if($_POST['user_delete'] == "yes") {
 $db->query("UPDATE " . USERPREFIX . "_users SET user_act='1' WHERE user_id = '{$id}'");
 header( "Location: {$_SERVER['REQUEST_URI']}" );
 } else 
 $stop .= "Удаление невозможно!";
 if($row['user_act'] == "1" ) {
 $tpl->load_template( 'user_delete.tpl' );
 $allow_active_news = false;
 @header( "HTTP/1.0 404 Not Found" );
 if( $allow_userinfo and $doaction == "upduserinfo" ) {
 $stop = false;
 if( !$is_logged OR $_POST['dle_allow_hash'] == "" OR $_POST['dle_allow_hash'] != $dle_login_hash OR !$id) die( "Hacking attempt! User ID not valid" );
 if ( $member_id['user_id'] != $id AND $member_id['user_group'] != 1 ) die( "Hacking attempt!" );
 if($_POST['user_save'] == "yes") {
 $db->query("UPDATE " . USERPREFIX . "_users SET user_act='0' WHERE user_id = '{$id}'");
 header( "Location: {$_SERVER['REQUEST_URI']}" );
 }
 }
 msgbox( $lang['all_err_1'], "В течении месяца ваш аккаунт будет полностью удален!" );
 $tpl->copy_template = "<form method=\"post\" name=\"userinfo\" id=\"userinfo\" enctype=\"multipart/form-data\" action=\"{$link_profile}\">" . $tpl->copy_template . "
 <input type=\"hidden\" name=\"doaction\" value=\"upduserinfo\" />
 <input type=\"hidden\" name=\"id\" value=\"{$row['user_id']}\" />
 <input type=\"hidden\" name=\"dle_allow_hash\" value=\"{$dle_login_hash}\" />
 </form>";
 $tpl->compile( 'content' );
 $tpl->clear();
 $lastd = round( ( time() - $GLOBALS['row']['lastdate']) / 86400); 
 $lastd_month = floor($lastd / 31);
 if($lastd_month >= 1) {
 if( $_REQUEST['dle_allow_hash'] == "" or $_REQUEST['dle_allow_hash'] != $dle_login_hash ) die( "Hacking attempt! User not found" );
 if( !$id ) die( $lang['user_nouser'] );
 if( ! $row['user_id'] ) die( "User not found" );
 if (($member_id['user_group'] != 1 AND $row['user_group'] == 1 ) || ($is_login)) die( $lang['user_undel'] );
 $db->query( "DELETE FROM " . USERPREFIX . "_pm WHERE user_from = '{$row['name']}' AND folder = 'outbox'" );
 @unlink( ROOT_DIR . "/uploads/fotos/" . $row['foto'] );
 $db->query( "delete FROM " . USERPREFIX . "_users WHERE user_id='$id'" );
 $db->query( "delete FROM " . USERPREFIX . "_banned WHERE users_id='$id'" );
 $db->query( "delete FROM " . USERPREFIX . "_pm WHERE user='$id'" );
 $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$_TIME}', '{$_IP}', '65', '{$row['name']}')" );
 clear_cache();
 header( "Location: {$_SERVER['REQUEST_URI']}" );
 } else 
 $stop .= "Удаление невозможно!";
 }
 $tpl->set( '{user_delete}', $user_delete );
 } else {
 $tpl->set( '{user_delete}', "" );
 }
 // user delete by qnut


Найти:

$tpl->compile( 'content' );


Выше добавить:

if(($user_found == TRUE) AND ($member_id['user_id'] != $row['user_id']) AND $row['user_act'] == "1" ) {
 $allow_active_news = false;
 @header( "HTTP/1.0 404 Not Found" );
 msgbox( $lang['all_err_1'], "Пользователь санкционировал удаление своей анкеты, если в течении месяца он ее не восстановит, она будет полностью удалена!" );
 $tpl->clear();
 }


Открыть templates/THEME/userinfo.tpl, найти:

[/not-logged]


Перед ним вставить:

{user_delete}


Создать файл user_delete.tpl, с содержимым:

<div class="field-simple-checkbox"><input type="checkbox" name="user_save" id="user_save" value="yes"> <label for="user_save">Восстановить аккаунт</label></div>
 <div class="buttons">
 <button type="submit" class="button" name="submit">Восстановить</button>
 <input name="submit" type="hidden" id="submit" value="submit" />
 </div>


Дополнительно:
Пользователь может удалить себя только в том случае, если он не находится в группе 1, 2 или 3


Название: Account delete
Автор: Qnut
CMS: DataLife Engine 9.x - 10.2
Версия: 0.2.1
Поделился пользователь: reanimator692
Удаление своего аккаунта на DLE
Вот еще один интересный и рабочий хак!

На моем сайте 12.1 работает! Хоть и написано что CMS: DLE 9.x - 10.2

Предлагаем скачать хаки для DLE, как хак

Udalenie-svoego-akkaunta-na-DLE.rar [29,39 Kb] (cкачиваний: 48)
  • 80
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent