Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

¿Base de datos inestable?

Foros de soporte phpBB 3.2


VespaOntigola
Observador/a
Mensajes: 9
Registrado: 26 Nov 2009, 08:19

¿Base de datos inestable?

#1

Mensaje por VespaOntigola »

URL: http://forovespa.josemariamartin.org/ (si no es un foro, no lo pongas)
Estilo(s) usuado(s): Proflat
Extensiones instaladas: Tapatalk Plugin for phpBB 3.1/3.2
Versión de phpBB: 3.2.1
Versión de PHP: 7.0.33
Versión de MySQL: MySQL(i) 10.3.23-MariaDB-cll-lve
Servidor: Linux, de pago

Buenos días a todos:

Os escribo para, por favor, pediros ayuda antes de perder los nervios (que me queda muy poquito) y borrar todo el foro. El caso es ue me confié en los captchas "de serie" y un buen día (tras tiempo sin abrir el foro), me lo encontré spameado completamente. dado que no se habían producido altas de usuarios reales nuevas desde hacía tiempo, opté por eliminar usuarios acotando por fechas y purgando sus mensajes. Hasta ahí bien, pero me he encontrado un problema: al entrar en el foro, aparecen mensajes de spam que, al entrar, dicen "El tema requerido no existe". Del mismo modo, si pico sobre el autor del spam, me dice que "El Usuario requerido no existe". Incluso en algún foro me dice que "No hay mensajes" pero, al entrar, sí que están. Por favor ¿me podéis ayudar? Muchas gracias por anticipado.

Última edición por ThE KuKa el 24 Ago 2020, 16:25, editado 1 vez en total.
Razón: Editado para eliminar URL


Avatar de Usuario
AbaddonOrmuz
Moderador
Mensajes: 1064
Registrado: 14 Ene 2017, 22:18
Género:

¿Base de datos inestable?

#2

Mensaje por AbaddonOrmuz »

Exactamente cómo purgaste sus mensajes?

Intenta si tras sincronizar los mensajes se corrige tu problema, para ello da clic en "Sincronizar estadísticas", "Sincronizar recuento de mensajes" y "Sincronizar temas marcados".

Imagen

Si tras sincronizar sigues teniendo el mismo problema, tendrías que revisar si por alguna razón las tablas de tu base de datos tienen inconsistencias.

Toma cualquier tema spam, en su URL verás algo como /viewtopic.php?f=3&t=161192, el número que necesitas es el del parámetro t, que en este ejemplo es 161192.

Con ese ID puedes buscar en la tabla phpbb_posts si hay inconsistencias, por ejemplo la siguiente sentencia podría arrojar más información.

Código: Seleccionar todo

SELECT post_id, forum_id, poster_id, post_username, post_visibility, post_delete_time
FROM phpbb_posts
WHERE topic_id = 161192;

Ahora en la tabla phpbb_topics.

Código: Seleccionar todo

SELECT forum_id, topic_status, topic_type, topic_first_post_id, topic_visibility, topic_delete_time, topic_posts_approved
FROM phpbb_topics
WHERE topic_id = 161192;

Si todo esta bien, los IDs post_id y forum_id deberían coincidir en ambas tablas,

Adicionalmente, te recomendaría actualizar a phpBB 3.2.10 o a 3.3.0, en caso de que en la versión que usas actualmente haya algún problema no parcheado.

Por otro lado, deberías remplazar lo más pronto posible el plugin anti spam por Q&A (Preguntas y Respuestas) o por la extensión Sortables Captcha, el que estas usando actualmente (imagen GD) es totalmente inservible, no debería existir ya pero por alguna razón no se ha borrado.

Algunas de mis extensiones:
Imagen Imgur | :chart_with_upwards_trend: SEO Metadata | Imagen Markdown | :lock: Auto-lock Topics | :mermaid: Mermaid Diagrams
:trophy: Checa todas mi extensiones aprobadas :trophy:

:penguin: Usuario de Arch Linux :penguin:

VespaOntigola
Observador/a
Mensajes: 9
Registrado: 26 Nov 2009, 08:19

¿Base de datos inestable?

#3

Mensaje por VespaOntigola »

Buenos días AbaddonOrmuz:

Antes de nada, muchas gracias por tu interés y disculpa por la tardanza en la respuesta. Para no dejarme nada en el tintero, te voy contestando por orden a todo lo que expones en tu post.

El modo de purgar los mensajes fue purgando usuarios (PCA / Usuarios y grupos / Purgar usuarios), eliminando a todos aquellos registrados después de una fecha concreta (sabía que no había habido movimiento “real” en el foro desde el 1/03/2020), marcando las opciones de “Borrar mensajes de usuarios purgados” y “Desactivar o borrar”. Tuve que hacerlo acotando por semanas en ocasiones ya que el número de spam era tan alto que llegaba a bloquear mi acceso al servidor. La información de la fecha te la doy porque no sé si una solución podría ser eliminar posts generados a partir de una fecha concreta.

Siguiendo tus instrucciones, probé a "Sincronizar estadísticas", "Sincronizar recuento de mensajes", "Sincronizar temas marcados" e, incluso, a “Limpiar la caché”. Todo ello sin éxito

A continuación tomé la URL de un tema de spam pero, en mi caso, no aparece el parámetro t. A modo de ejemplo, tomé /viewtopic.php?f=39&p=203177&sid=9b376376230650f7dfa58b95fea4f47c#p203177 y probé con el parámetro p a ejecutar el SQL que me indicas, pero no devolvió nada. Repetí la operación con f, es decir:

Código: Seleccionar todo

SELECT post_id, forum_id, poster_id, post_username, post_visibility, post_delete_time FROM phpbb_posts WHERE topic_id = 39;

El resultado fue el que aparece en la figura, con 16 ocurrencias.
Imagen

Luego ejecuté el código en la tabla phpbb_topics, es decir:

Código: Seleccionar todo

SELECT forum_id, topic_status, topic_type, topic_first_post_id, topic_visibility, topic_delete_time, topic_posts_approved FROM phpbb_topics WHERE topic_id = 39

El resultado fue menor, con sólo un registro (obviamente no hay coincidencia con el resultado del query anterior).
Imagen

Sin saber a qué se corresponde cada campo sí observo (y no sé si tiene algo que ver) que forum_id coincide y que topic_posts_approved devuelve el número de ocurrencias que aparecían en la tabla phpbb_posts.

Siguiendo tu consejo, cambié el plugin anti spam por Q&A (Preguntas y Respuestas).

Este es el punto en el que me he quedado. Por favor, ¿me puedes decir cómo continuar? ¿es incorrecto usar el parámetro f? ¡¡¡Muchas gracias por anticipado.!!!

Avatar de Usuario
AbaddonOrmuz
Moderador
Mensajes: 1064
Registrado: 14 Ene 2017, 22:18
Género:

¿Base de datos inestable?

#4

Mensaje por AbaddonOrmuz »

@VespaOntigola Las consultas anteriores sólo funcionan con el ID del tema, es decir, con del valor de la T minúscula de la URL.

En los ejemplos anteriores uso un valor real tomado de tu foro, así que podrías ejecutarlo tal cual, sin hacer modificaciones.

Visitando, por ejemplo, /search.php?search_id=active_topics puedes obtener los enlaces con la variable t en las URLs.

Si te preguntabas ¿en qué ayudan esas consultas SQL? te comento que revisando el código (viewtopic.php), ese error trigger_error('NO_TOPIC') se muestra si algunas de las condiciones se cumple:

  • Los valores de las variables $forum_id o $post_id son inválidos
  • No hay un valor definido para la columna forum_id en la tabla phpbb_topics
  • No hay mensajes con ese post_id, topic_id y forum_id
  • El tema no es visible

Por otro lado, veo que todos tus enlaces agregan el SSID (identificador de sesión) siempre, lo cual solo debería ocurrir únicamente al visitar tu sitio por primera vez, navegando a otra página dentro de tu foro debería desaparecer.

Así que revisando, tus cookies están usando un dominio distinto al tuyo:

Código: Seleccionar todo

$ curl -IL forovespa.josemariamartin.org
...
Set-Cookie: phpbb3_iygxp_u=1; expires=Fri, 28-Aug-2020 23:37:14 GMT; path=/; domain=vespeando.com; HttpOnly
Set-Cookie: phpbb3_iygxp_k=; expires=Fri, 28-Aug-2020 23:37:14 GMT; path=/; domain=vespeando.com; HttpOnly
Set-Cookie: phpbb3_iygxp_sid=XXXXXXX; expires=Fri, 28-Aug-2020 23:37:14 GMT; path=/; domain=vespeando.com; HttpOnly
...

No tengo idea si podría tener algo que ver con tu problema inicial, sin embargo es algo que es necesario corregir de todos modos.

Corregir una incorrecta configuración de las cookies

Adicionalmente, recomendaría agregar una redirección para usar HTTPS, ya que al parecer cuentas con un certificado SSL.

Configurar conexión segura (HTTPS) con un certificado SSL

En tu caso particular debería ser:

  • Dominio: forovespa.josemariamartin.org
  • Cookie segura: Si (sólo si creaste una redirección)

Luego de cambiar esos ajustes, sería necesario limpiar las cookies de tu navegador para evitar conflictos.

Algunas de mis extensiones:
Imagen Imgur | :chart_with_upwards_trend: SEO Metadata | Imagen Markdown | :lock: Auto-lock Topics | :mermaid: Mermaid Diagrams
:trophy: Checa todas mi extensiones aprobadas :trophy:

:penguin: Usuario de Arch Linux :penguin:

VespaOntigola
Observador/a
Mensajes: 9
Registrado: 26 Nov 2009, 08:19

¿Base de datos inestable?

#5

Mensaje por VespaOntigola »

Buenos días de nuevo AbaddonOrmuz y gracias por tu ayuda:

Siguiendo tus indicaciones, he ejecutado el código que me facilitaste tal cual aparece en tu pos. Así, el query

Código: Seleccionar todo

SELECT post_id, forum_id, poster_id, post_username, post_visibility, post_delete_time
FROM phpbb_posts
WHERE topic_id = 161192;

no devuelve ninguna ocurrencia y

Código: Seleccionar todo

SELECT forum_id, topic_status, topic_type, topic_first_post_id, topic_visibility, topic_delete_time, topic_posts_approved
FROM phpbb_topics
WHERE topic_id = 161192;

devuelve lo siguiente:

Imagen

Continuando con tus indicaciones, si ejecuto

Código: Seleccionar todo

http://forovespa.josemariamartin.org/search.php?search_id=active_topics

Aparecen todos los temas que quiero eliminar :) pero, si intento entrar en cualquiera de ellos, ¡me vuelve a decir que el tema no existe :( !

He cogido el parámetro t de uno de ellos y he vuelto a repetir el código que me proponías en tu post anterior. Así, para un t=155612

Código: Seleccionar todo

SELECT post_id, forum_id, poster_id, post_username, post_visibility, post_delete_time
FROM phpbb_posts
WHERE topic_id = 155612;

el resultado es vacío (cero filas) y para el segundo query

Código: Seleccionar todo

SELECT forum_id, topic_status, topic_type, topic_first_post_id, topic_visibility, topic_delete_time, topic_posts_approved
FROM phpbb_topics
WHERE topic_id = 155612;

devuelve la ocurrencia:

Imagen

En cuanto al dominio, estás en lo cierto: en su día se usaba vespeando.com que apuntaba al subdominio forovespa.josemariamartin.org. Ahora sólo está operativo el subdominio (con la pandemia, me descuidé en la renovación). En PCA / General / Configuración del sitio, que parecía vacío, he indicado la ruta del subdominio, pero tampoco observo cambios.

Con respecto a las cookies, he ido a PCA / General / Configuración del servidor / Configuración de cookies y he cambiado:

Dominio de cookies: .josemariamartin.org (antes estaba vespeando.com)
Nombre de la cookie: phpbb3_iygxp (es el valor que estaba originalmente)
Ruta de la cookie: / (es el valor que estaba originalmente)

Ahora, tenemos esto:

Código: Seleccionar todo

[josemari@server202 ~]$ curl -IL forovespa.josemariamartin.org
HTTP/1.1 200 OK
Connection: Keep-Alive
X-Powered-By: PHP/7.0.33
Set-Cookie: phpbb3_iygxp_u=1; expires=Sat, 29-Aug-2020 06:46:05 GMT; path=/; domain=.josemariamartin.org; HttpOnly
Set-Cookie: phpbb3_iygxp_k=; expires=Sat, 29-Aug-2020 06:46:05 GMT; path=/; domain=.josemariamartin.org; HttpOnly
Set-Cookie: phpbb3_iygxp_sid=xxxxxxxxx; expires=Sat, 29-Aug-2020 06:46:05 GMT; path=/; domain=.josemariamartin.org; HttpOnly
...

Mantengo deshabilitada la opción de Cookie segura y he activado el Aviso de Cookie. Por último, he limpiado las cookies de mi navegador pero seguimos igual :( ¡¡Muchas gracias por tu interés y tu tiempo!!

Avatar de Usuario
AbaddonOrmuz
Moderador
Mensajes: 1064
Registrado: 14 Ene 2017, 22:18
Género:

¿Base de datos inestable?

#6

Mensaje por AbaddonOrmuz »

@VespaOntigola tienes una copia de seguridad de justo antes de eliminar a los usuarios?

De algún modo los temas no se eliminaron correctamente, esos temas no existen, lo que ves es únicamente lo que se encuentra en la tabla phpbb_topics

La primer consulta debería arrojar el mismo número de posts que muestra topic_posts_approved, al menos 1 registro.

Algún post_id debería coincidir con el de topic_first_post_id que es el mínimo necesario.

Con una copia de seguridad sería más sencillo, porque eliminar manualmente los registros no es buena idea.

Por otro lado, el dominio de la cookie debería ser el subdominio + dominio: forovespa.josemariamartin.org

Algunas de mis extensiones:
Imagen Imgur | :chart_with_upwards_trend: SEO Metadata | Imagen Markdown | :lock: Auto-lock Topics | :mermaid: Mermaid Diagrams
:trophy: Checa todas mi extensiones aprobadas :trophy:

:penguin: Usuario de Arch Linux :penguin:

  • Temas similares
    Respuestas
    Vistas
    Último mensaje

Volver a “🔎 Foros de Soporte 3.2”