Немного про систему банов. Если мы забанили пользователя, что ему мешает зарегистрироваться снова?
usercp_register.php
после
$tp_data = array(); // данные для tpl
добавляем
PHP:
// НЕ ДАЕМ СНОВА РЕГИСТРИРОВАТЬСЯ ТЕМ, КТО ЗАБАНЕН
$result = DB()->fetch_rowset("SELECT ban_userid FROM ". BB_BANLIST ." WHERE 1");
if(!empty($result)){
foreach($result AS $k=>$v){
$ids[]=$v['ban_userid'];
}
if(!empty($ids)){
$result = DB()->fetch_rowset("SELECT user_last_ip, user_reg_ip FROM ". BB_USERS ." WHERE user_id IN(".implode(',',$ids).")");
foreach($result AS $k=>$v){
$ips[]=$v['user_last_ip'];
$ips[]=$v['user_reg_ip'];
}
if (in_array(USER_IP,array_unique($ips)) AND !IS_AM){
message_die(GENERAL_ERROR, $lang['REGISTER_DISABLED'].
'<!--br><br>
<form method="post" action="/profile.php?mode=register" class="form-group" style="max-width:25%">
<div class="input-group input-group-sm">
<input class="post form-control" type="text" size="16" maxlength="25" name="invite" value="" placeholder="'.$lang['INVITE_CODE'].'">
<span class="input-group-btn">
<button type="submit" class="btn btn-default " title="Send">'.$lang['SUBMIT'].'</button>
</span>
</div>
</form-->');
}
}
}
// НЕ ДАЕМ СНОВА РЕГИСТРИРОВАТЬСЯ ТЕМ, КТО ЗАБАНЕН
Этот код выдает забаненым, что регистрация временно недоступна.
Можно конечно банить последний ip пользователя вместе с его аккаунтом, но это неправильно. Сейчас у провайдеров дефицит айпишников и они сажают сотни, а то и тысячи юзеров на один айпи.
Как вариант, можно добавить условие: если айпи пользователя встречается единожды в базе всех пользователей, то запрещаем ему регистрацию.
Либо можно уже реализовать как отдельный мод с помощью
- получаем набор параметров браузера пользователя + ip и формируем уникальный хэш из этого и так отлавиливаем мультиаккаунты кроном или в момент авторизации