Проблемы с удалением пользователя

Спамер создал около сотни топиков. Попытался удалить юзера, но получил Fatal error: Maximum execution time of 30 seconds exceeded in ...www/engine/lib/external/DklabCache/Zend/Cache/Backend/File.php on line 481
Пришлось удалить топики вручную. Но юзер все равно не удаляется.

Что можно сделать?

P.S.
1) Время для выполнения скрипта увеличить нет возможности.
2) Раньше на этом же хостинге удаляло таких юзеров сразу с топиками.
3) Версия 1.0.3 с некоторыми изменения в движке.
4) Удаляю через админку aceAdminPanel.

2 комментария

avatar
Единственное правильное решение — увеличить максимальное время выполнения. Но, поскольку, это отпадает, придется искать обходные пути.
1) Судя по ошибке у Вас используется файловый кеш ($config['sys']['cache']['type']='file'). Здесь несколько раз поднимался вопрос о том, что на хостинге выигрыша от его использования нет. Попробуйте отключить кеширование (установить $config['sys']['cache']['use']=false), это должно уменьшить затраты времени на удаление (правда, я не уверен, существенно уменьшить или нет).
2) Если, у Вас завелся бот, то для того, чтобы максимально быстро нейтрализовать его спам — проще всего выполнить такой скрипт прямо в БД (перед использованием задать правильное значение user_id вместо 255):
UPDATE `prefix_user` SET `user_activate`=0 WHERE `user_id`=255;
UPDATE `prefix_topic` SET `topic_publish`=0 WHERE `user_id`=255;
UPDATE `prefix_comment` SET `comment_delete`=1 WHERE `user_id`=255;

Первая строка сбросит активацию пользователя, вторая — спрячет все его топики, третья — пометит все комментарии удаленными.
Как поступать дальше с данным пользователем и его «творчеством» — решать Вам.
avatar
Спасибо. Отключение кеша решило проблему.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.