Buenas, estoy creando un sistema de comentarios y este tiene un sistema de baneos que banea a un usuario si postea 5 comentarios seguidos en un mismo elemento.
El baneo es por 5 minutos, el problema viene cuando tras acabarse el baneo el usuario vuelve a entrar y vuelve a ser baneado si nadie ha comentado en ese mismo elemento o si el usuario no ha borrado ningún comentario suyo.
Es decir es un bucle, el usuario siempre va a ser baneado hasta que una persona comente en el mismo elemento o el usuario borre un comentario suyo.
El código es el siguiente:
Código PHP:
$last_fivecomments = $db->get_results("SELECT comentarios.ID_MEMBER FROM comentarios WHERE comentarios.type = '$type' AND comentarios.ID_elemento = $ID ORDER BY comentarios.date DESC LIMIT 5");
$result = 0;
if(count($last_fivecomments) >= 5) {
foreach($last_fivecomments AS $l) {
$result = $result + $l->ID_MEMBER;
}
if($result == ($USER_ID * 5)) {
// if(!$USER_IS_ADMIN) {
logtxt_insert('flood_comments', 'bans', $USER_ID, 60*5);
userBan($USER_ID, 60*5, 'Host: Baneado por 5 comentarios seguidos en un mismo elemento');
// }
}
}
$last_fivecomments - Recoge la ID de los miembros que postearon los últimos 5 comentarios en ese mismo elemento.
$result = Almacena las ID de los miembros sumadas.
Si
$result es igual a la ID del miembro por 5 (el número de IDs que se recogen) se inserta un log y se banea al usuario por 5 minutos.
Lo que pretendo hacer es que el usuario sólo sea baneado una vez por esos 5 comentarios ...
He pensado en recoger los baneos y si ya ha habido un baneo a ese usuario por esos comentarios en ese elemento no banearlo, pero si el usuario vuelve a postear 5 comentarios seguidos no lo banearía y entonces no me vale esa solución.
¿Alguna idea?
Muchas gracias!