Разрешите вставить свои 5 копеек? Дело в том, что у меня на форуме очень редко регистрируются боты. Чаще всего они пытаются влезть с рекламой в те разделы, где доступ гостям не закрыт. А вот ситуации, когда свеже-зарегистрированный юзверь, на радостях постит линк (без всякого желания что-либо рекламировать!) на какую-нибудь статью по теме обсуждения - бывали. И удалять такого неграмотного, без предупреждения, как то грубо и не по европейски. Так я сделал небольшое изменение в основном коде (надеюсь авторы не обидятся?) и теперь вместо удаления пользователя его запись просто становится неактивной. Вот пример кода:
Код: Выделить всё
// Registered spammer or stupid user? Kill message and deactivate user...
$sql = 'SELECT user_active, user_actkey
FROM ' . USERS_TABLE . "
WHERE user_id = ".$userdata['user_id'];
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if ($row['user_active'] !== 0)
{
// Clear session
$sql = "DELETE FROM " . SESSIONS_TABLE . " WHERE session_ip ='$user_ip'";
if (!$db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Error clearing session', '', __LINE__, __FILE__, $sql); }
// Change activation status for user to '0'
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_active = 0
WHERE user_id = ".$userdata['user_id'];
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error deactivating user', '', __LINE__, __FILE__, $sql);
}
// Clear activation key for forums where activation is needed
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_actkey = ''
WHERE user_id = ".$userdata['user_id'];
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error deletion of actkey', '', __LINE__, __FILE__, $sql);
}
}
Активировать его я всегда смогу - по его запросу (я там и в языковом файле внес соответственные изменения), а вот полностью востанавливать запись - это геморр.
Да, кто нибудь заметил такую интересную штуку - при удалении пользователя (через мод) и попытке снова зарегистрироваться с тем же ником - адрес почты не принимается! Пишет - такой адрес уже используется другим.. Или это только у меня такое чудо?