Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

Foro PHPBB: borrado de mensajes desde phpmyadmin

Estas en el tema de Foro PHPBB: borrado de mensajes desde phpmyadmin en el foro de Sistemas de gestión de contenidos en Foros del Web. Hola; tengo un foro phpbb que ha sido invadido por mensajes de publicidad, miles de ellos en un sólo día. La cuestión es que, aparte ...
  #1 (permalink)  
Antiguo 11/09/2006, 04:12
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 295
Antigüedad: 20 años, 1 mes
Puntos: 10
Pregunta Foro PHPBB: borrado de mensajes desde phpmyadmin

Hola;

tengo un foro phpbb que ha sido invadido por mensajes de publicidad, miles de ellos en un sólo día.

La cuestión es que, aparte de que ya he tomado medidas como que sólo firmen los registrados, estoy borrando los mensajes de spam desde phpmyadmin (se pueden borrar en el propio foro, pero hay que ir uno por uno y nunca acabaría).

Y la cosa es que estoy borrando todos, y desaparecen de la base de datos, pero en el foro en sí, siguen apareciendo "restos" de esos mensajes. Con restos me refiero a que, por ejemplo, hay un tema con 6 páginas de respuestas, de las cuales las 3 últimas eran sólo de los mensajes estos de publicidad. Ahora esos mensajes no están, pero en vez de quedar el tema con 3 páginas, sigue poniendo que hay 6, y al pinchar en las 3 últimas páginas pone Mensaje no existente.

Además, en "Ver mensajes desde mi última visita", igualmente siguen apareciendo, pero luego al entrar a leerlos sale eso de Mensaje no existente.

Sabéis por qué pasa esto?

Saludos.
__________________
La posada del Pixel | Wanapix
  #2 (permalink)  
Antiguo 11/09/2006, 08:10
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 9 meses
Puntos: 55
Tienes que borrarlos de la tabla phpbb_posts y phpbb_posts_text y además actualizar el campo topic_replies en phpbb_topics. Seguramente es esto último lo que no has hecho...

Hacerlo a mano puede ser infumable, supongo que será más sencillo hacerlo a través de alguna consulta SQL... La siguiente consulta te daría como resultado dos columnas, una con cada topic_id y otra con el número real de respuestas que tiene

Código:
SELECT topic_id, COUNT(topic_id)-1 FROM `phpbb_posts` GROUP BY topic_id
Los resultados de la segunda columna los tendrías que meter en la columna topic_replies de phpbb_topics, de forma que los topic_id se correspondan.

Código:
UPDATE `phpbb_topics` SET topic_replies = x WHERE topic_id = y
(sustituir x e y por los resultados obtenidos en la consulta SELECT)

Imagino que se podrá hacer todo en una sola consulta SQL... pregunta en el foro de bases de datos a ver si algún gurú de mysql sabe cómo hacerla. Si se puede no te olvides de pasar la respuesta por aquí, que me interesa

Otra opción es programarte un script en php que primero consulte, guarde un array con el número de respuestas a cada topic_id, y luego actualice la tabla phpbb_topics.

Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #3 (permalink)  
Antiguo 11/09/2006, 08:19
Avatar de indie81  
Fecha de Ingreso: octubre-2004
Ubicación: Zaragoza
Mensajes: 295
Antigüedad: 20 años, 1 mes
Puntos: 10
Gracias por la respuesta. Exactamente había hecho lo que tú has dicho: "Tienes que borrarlos de la tabla phpbb_posts y phpbb_posts_text y además actualizar el campo topic_replies en phpbb_topics. Seguramente es esto último lo que no has hecho...".

Los he borrado todos más o menos rápido, haciendo consultas SQL, buscando mensajes que contenían las palabras casino, poker y alguna más en el asunto. Así me cargaba todos los mensajes de publicidad de golpe.

Salu2
__________________
La posada del Pixel | Wanapix
  #4 (permalink)  
Antiguo 11/09/2006, 08:30
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 9 meses
Puntos: 55
Ummm... revisando la base de datos veo que hay más referencias que habría que cambiar:

En phpbb_forums habría que actualizar las columnas forum_posts y forum_topics. Si no lo haces supongo que lo único en que afecta es que en el índice del foro sale mal el recuento de los mensajes

En phpbb_search_wordmatch habría que eliminar todas las entradas que tengan un post_id de un mensaje con spam (lo mejor, localiza cuándo empezó el spam y te cargas todas las entradas que tengan un post_id igual o superior). Eso creo que sólo afectaría a las búsquedas.

En phpbb_topics, eliminar todos los topic_id de algún mensaje de spam. Esto sólo si se iniciaron nuevos temas con spam... Si todos son respuestas a mensajes no existentes no haría falta.

No se me ocurre dónde más puede haber referencias a los posts...

__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:55.