Добрый день.
Произошел спам через регистрацию пользователей, создали огромное количество пользователей со спамом. Заметил, что нету массового удаления. А надо удалить больше 2000 записей.
Нет массового удаления пользователей у администратора
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Нет массового удаления пользователей у администратора
Можно через автоматизацию сделать кнопку для удаления. По умолчанию ее нет.
- mikhalkin
- Инвестор

- Сообщения: 193
- Зарегистрирован: 04 июн 2018, 15:07
- Имя: Александр
- Откуда: Москва
- Организация: Нионейт
- Контактная информация:
Re: Нет массового удаления пользователей у администратора
У меня есть дополнение, а у кого нет?
- Develop-Soft
- Сообщения: 599
- Зарегистрирован: 27 мар 2019, 01:22
- Имя: Владимир
- Откуда: Россия, Белгород
- Контактная информация:
Re: Нет массового удаления пользователей у администратора
Костылём..
1. Пользователь с правами удаления авторизован.
2. Страница "пользователи"
3. Нажать кнопку удаления любого пользователя (для появления формы)
4. "Инструменты разработчика [F12]" -> "Консоль".
5. Вставить код:
6. Указать свой диапазон в start_id и end_id (главное, чтобы в него не попали нужные юзеры)
7. "Выполнить" (Enter).
1. Пользователь с правами удаления авторизован.
2. Страница "пользователи"
3. Нажать кнопку удаления любого пользователя (для появления формы)
4. "Инструменты разработчика [F12]" -> "Консоль".
5. Вставить код:
Код: Выделить всё
// Удаляемый диапазон пользователей (Бэкап БД крайне желателен!)
start_id = 25;
end_id = 2000;
//////////////////////////////////
(async()=>{const form=document.getElementById('delete_item_form');if(!form){console.error('Форма #delete_item_form не найдена');return;}
const actionUrl=form.action;if(!actionUrl){console.error('Атрибут action отсутствует');return;}
if(start_id>end_id){console.error('start_id не может быть больше end_id');return;}
const formData=new FormData(form);const url=new URL(actionUrl);const baseUrl=url.origin+url.pathname;const baseParams=new URLSearchParams(url.search);baseParams.delete('id');console.log(`Начинаю удаление с ID ${start_id} по ${end_id}...`);for(let id=start_id;id<=end_id;id++){const params=new URLSearchParams(baseParams);params.set('id',id);const fullUrl=`${baseUrl}?${params.toString()}`;const body=new FormData();for(const[key,value]of formData.entries()){body.append(key,value);}
console.log(`📤 Отправляю запрос на удаление ID ${id} → ${fullUrl}`);try{const response=await fetch(fullUrl,{method:'POST',body:body,credentials:'same-origin'});if(response.ok){console.log(`✅ ID ${id}: успешно удалён (статус ${response.status})`);}else{console.warn(`⚠️ ID ${id}: сервер вернул ошибку ${response.status}`);}}catch(error){console.error(`❌ ID ${id}: ошибка сети`,error);}
await new Promise(resolve=>setTimeout(resolve,100));}
console.log('✅ Цикл удаления завершён.');})();7. "Выполнить" (Enter).