Creo que esta información puede ser de gran interés para los administradores de foros públicos phpBB.
Seguro que todos nosotros estamos hartos de tener que soportar a los spammers que se dan de alta masivamente en nuestros foros, y que tenemos que eliminar manualmente cada día. En nuestro caso, la situación era ya insoportable con más de 30 spammers diarios, que plagaban nuestro foro con enlaces a sitios cada vez más repugnantes (incluyendo pornografía infantil, que es lo que nos ha hecho decidirnos a dar una solución a este problema de una vez).
El problema de phpBB es que cualquier nuevo usuario, aunque su cuenta no haya sido activada por el administrador, aparece en el listado de usuarios del foro y en la sección "Quién está en Línea / Who is Online" de la página principal, como último usuario registrado.
Bien, pues nuestra solución ha sido modificar el código fuente php del foro (phpBB es código abierto como sabéis), y nuestra sorpresa ha sido grande al ver que la solución es mucho más sencilla de lo que esperábamos.
Sólo hay que modificar dos archivos fuente:
memberlist.php
Línea 145: sustituir por:
$sql = "SELECT user_active, username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar
Línea 159: insertar:
if ( $row['user_active'] ) {
Línea 270: insertar:
}
includes/functions.php
Línea 40: sustituir por:
ORDER BY user_active DESC, user_id DESC
Eso es todo. Con estas modificaciones, sólo los usuarios activos aparecen, tanto en el listado de miembros como en la página principal. A partir de aquí, para eliminar a los spammers basta con acceder al servicio MySQL de nuestro servidor. Por supuesto, en la configuración del foro hay que seleccionar "activación de cuentas de usuario" a cargo del administrador del foro (Enable account activation = Admin). Bye bye, spammers
Espero que os resulte útil. Un saludo.