Народ, помогите, пожалуйста! У меня на форуме появляются спасибковые флудеры. Они ставят спасибки всем подряд. Один за полтора часа умудрился 1200 штук понаставить. Поздно заметили, в админке вписал его айди, чтобы больше не смог спасибки ставить, а эти 1200 штук остались(((( Вот думаю, как SQL-запросом их всех эффективно вытереть по айди юзера, поставившего эти спасибки.
Приблизительно надо сделать так:
надо, чтобы в таблице post_thanks находились записи с значение userid соответствующего флудера и эти записи удалялись, только перед этим надо, чтобы оттуда бралось значение postid и по нему в таблице post искались записи по этому postid и у найденных записей уменьшалось поле post_thanks_amount на единицу, к тому же чтобы из каждой такой записи бралось userid написавшего этот пост и в таблице user уже по этому userid поле post_thanks_thanked_times уменьшалось на единицу. Ух, если чо-нибудь поймёте из этого... Помогите, пожалуйста...
Как я тебя понимаю. было тоже самое. 800 штук одному человеку поставил гад какой то.
Сидил 2 дня ручками подтирал за ним. Всё на свете проклял.
После этого поставил лимит благодарностей за 24 часа 10 штук.
Спасибо конечно, но я и сам так сначала сделал. Действительно все спасибки удалились, но поле благодарности у каждого поста осталсь. Поэтому я и написал
Цитата:
Сообщение от TOXACb
только перед этим надо, чтобы оттуда бралось значение postid и по нему в таблице post искались записи по этому postid и у найденных записей уменьшалось поле post_thanks_amount на единицу, к тому же чтобы из каждой такой записи бралось userid написавшего этот пост и в таблице user уже по этому userid поле post_thanks_thanked_times уменьшалось на единицу.
Кстати, я выяснил причину такого безобразия на форуме. Пользователь, который понаставил за пару часов 1000 спасибок, просто скачивал мой сайт какой-то специальной прогой (пока не выяснил какой) и она понаставила, зараза, спасибок.
TOXACb, После удаления из таблиц:
DELETE FROM post_thanks WHERE userid=fluderuserid
И если использовалась репутация то
DELETE FROM reputation WHERE whoadded = fluderuserid AND reason = 'Thanked Post'
А остальное можно сделать с помошью обновления счетчиков в ./admincp/misc.php?do=chooser. Там есть обновление счетчиков для этого хака.