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

Рубрика: Хаки для DLE » Хак DLE 13.1, 13.0, 12.1, 12.0, 11.3, 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8
Хак DLE возможность удаление своего аккаунта

Представляем на www.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, как хак
Представляем на www.dle9.com хак DLE возможность удаление своего аккаунта на сайте, по умолчанию на платформе DataLife Engine 9.x - 12.1 всё лучшее у нас форумы, хаки, модули, шаблоны.
  • 80
Рубрика: DLE хаки » Хак для DLE
Ранее » Рейтинг DLE, как на youtube без правок движка
Нажмите на ссылку, чтобыОставить комментарий