Кто еще не научился защищаться от ботов рано или поздно заметит в статистике одно число – количество аккаунтов в базе данных. В свое время на этом сайте оно составляло 77 тысяч
Так же эти боты, помимо текстовой записи в таблице, которая, казалось бы весит менее байта, но в количестве 77 тысяч это уже ощутимый вес. А так же они загружают и аватары. Все это превращается в сотни мегабайт ненужной информации.
Быстро удалить 77 тысяч пользователей по 50 штук через админку мы не сможем. Все что нужно, так это зайти в phpMyAdmin и подправить запрос в MySQL базу данных.
Найти таблицу dle_users
И мы попадем на страницу, где в форме таблицы выведены все наши пользователи. Здесь их можно редактировать минуя админку
Экспортировать таблицу dle_users в файл
Вверху нажать экспорт. Убедиться, что мы скачиваем именно sql и нажать ок. Теперь можно приступать к редактированию файла у себя на компьютере
Очистка список пользователей
На скриншоте выше код, который создает таблицу, куда будут заноситься все пользователи. Мы его не трогаем и смотрим ниже
INSERT INTO `dle_users` (`email`, `password`, `name`, `user_id`, `news_num`, `comm_num`, `user_group`, `lastdate`, `reg_date`, `banned`, `allow_mail`, `info`, `signature`, `foto`, `fullname`, `land`, `icq`, `favorites`, `pm_all`, `pm_unread`, `time_limit`, `xfields`, `allowed_ip`, `hash`, `logged_ip`, `restricted`, `restricted_days`, `restricted_date`)
VALUES ('artemmian.ru@gmail.com', 'd3332a6c938f3fcc52356f91d278c5df', 'artemmian', 1, 507, 1, 1, '1413275302', '1321187899', '', 1, '', '', 'foto_1.png', '', '', '', '', 0, 0, '', '', '', '', '81.22.134.219', 0, 0, '');
INSERT INTO `dle_users` это форма, по которой данные заносятся в базу данных. Все, что находиться в () мы тоже не трогаем.
А вот VALUES это уже строка пользователя в таблице. Данные так же находятся в скобках, которые между собой разделены запятой. Оставляем одну такую строку, но очень важно последняя запись заканчивается \”точкой с запятой\” и это я указал в примере выше!
Короче говоря смысл примерно такой/ В коде ниже четыре пользователя, строки разделены запятой, последняя – точкой с запятой!
VALUES ('параметр', 'параметр'),('параметр', 'параметр'),('параметр', 'параметр'),('параметр', 'параметр');
Делаем запрос
DROP TABLE IF EXISTS `dle_users`;
CREATE TABLE IF NOT EXISTS `dle_users` (
`email` varchar(50) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`name` varchar(40) NOT NULL default '',
`user_id` mediumint(8) NOT NULL auto_increment,
`news_num` smallint(6) NOT NULL default '0',
`comm_num` mediumint(8) NOT NULL default '0',
`user_group` smallint(5) NOT NULL default '4',
`lastdate` varchar(20) default NULL,
`reg_date` varchar(20) default NULL,
`banned` varchar(5) NOT NULL default '',
`allow_mail` tinyint(1) NOT NULL default '1',
`info` text NOT NULL,
`signature` text NOT NULL,
`foto` varchar(30) NOT NULL default '',
`fullname` varchar(100) NOT NULL default '',
`land` varchar(100) NOT NULL default '',
`icq` varchar(20) NOT NULL default '',
`favorites` text NOT NULL,
`pm_all` smallint(5) NOT NULL default '0',
`pm_unread` smallint(5) NOT NULL default '0',
`time_limit` varchar(20) NOT NULL default '',
`xfields` text NOT NULL,
`allowed_ip` varchar(255) NOT NULL default '',
`hash` varchar(32) NOT NULL default '',
`logged_ip` varchar(16) NOT NULL default '',
`restricted` tinyint(1) NOT NULL default '0',
`restricted_days` smallint(4) NOT NULL default '0',
`restricted_date` varchar(15) NOT NULL default '',
PRIMARY KEY (`user_id`),
UNIQUE KEY `name` (`name`),
UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=11044 ;
INSERT INTO `dle_users` (`email`, `password`, `name`, `user_id`, `news_num`, `comm_num`, `user_group`, `lastdate`, `reg_date`, `banned`, `allow_mail`, `info`, `signature`, `foto`, `fullname`, `land`, `icq`, `favorites`, `pm_all`, `pm_unread`, `time_limit`, `xfields`, `allowed_ip`, `hash`, `logged_ip`, `restricted`, `restricted_days`, `restricted_date`)
VALUES
('admin@gmail.com', 'd9b1d7db4cd6e70935368a1efb10e377', 'admin', 1, 507, 1, 1, '1413275302', '1321187899', '', 1, '', '', 'foto_1.png', '', '', '', '', 0, 0, '', '', '', '', '81.22.134.219', 0, 0, '');
Чуть выше мы делали экспорт, а теперь там же, только вкладка SQL. По примеру чуть выше скопировать код выше, вставить туда и нажать ОК. На сайте будет всего один пользователь с логином admin и паролем 123.
Перед началом запроса добаить строку, которая вначале удалит существующую таблицу, а на ее место добавит новую
DROP TABLE IF EXISTS `dle_users`;
Но код выше лучше не копировать, а подготовить самостоятельно из-за разных версия движка и возможных модулей, которые вносят записи в таблицу пользователей. Запрос актуален для версии 10.1.
Комментарии