Solución 004: Mensaje de cuatro tags termina dentro de la URL
Guía técnica de RadioaficionadosClub.cl | RISUS NOVA 2.2.0 / PHPost | 11 de noviembre de 2026
Entorno de referencia: PHP 8.4, MariaDB 11.4, Smarty, CKEditor y tema personalizado RadioaficionadosClub Modern.
1. Problema y síntomas
Se observó una ruta que incorporaba el texto “Tienes que ingresar por lo menos 4 tags” como parte de la dirección del post, en vez de mostrarlo como aviso de validación.
2. ¿Dónde revisar?
- inc/class/c.posts.php: función validTags y respuesta de newPost.
- JavaScript del formulario en m.agregar_form.tpl: lectura de respuesta AJAX.
- Reglas de URLs amigables y la página de destino: validar solo tras éxito.
3. Diagnóstico
La creación del post devuelve un mensaje de error cuando faltan tags y el frontend puede tratar esa respuesta como si fuera un identificador o una ruta exitosa. El problema afecta la navegación y la calidad de las URL.
4. Solución paso a paso
- Verificar que se envíen al menos cuatro etiquetas válidas según las reglas del servidor.
- Separar la respuesta de error de la respuesta exitosa.
- No construir ni abrir una URL si el identificador recibido no es numérico.
- Mostrar el error dentro del formulario sin perder el contenido del usuario.
- Probar URLs con caracteres acentuados y confirmar que el slug se construya desde datos controlados.
5. Código de ayuda (ejemplo orientativo)
Estos fragmentos ilustran el concepto. Deben adaptarse a la estructura y funciones de cada versión; no sustituyen un parche probado.
// Ejemplo orientativo en JavaScript
const id = Number(respuesta);
if (!Number.isSafeInteger(id) || id <= 0) {
mostrarError(String(respuesta));
return;
}
// Construir la navegación solo si el servidor confirma éxito.
6. Cómo comprobar la reparación
- Intentar publicar con menos de cuatro tags.
- Comprobar que la página no cambia de dirección.
- Completar las etiquetas, publicar y abrir el artículo.
- Comprobar que el enlace no contenga mensajes de error.
7. Estado de la solución
El error de URL se observó en una publicación de prueba; se prepararon ajustes de validación, pero no se dispone de confirmación final en producción.
8. Precauciones
Los mensajes recibidos desde PHP deben presentarse como texto, no insertarse como HTML arbitrario, para evitar problemas de inyección.
Antes de cualquier cambio, respalda los archivos y la base de datos. No reemplaces archivos completos de otra versión sin comparar los cambios.
¿Te ocurrió este problema? Indica tu versión de PHPost/RISUS NOVA, tema, versión de PHP y pasos para reproducirlo en los comentarios.
RadioaficionadosClub.cl · Comunidad de radioaficionados de Chile para el mundo. Publicación independiente; no es documentación oficial de PHPost.
Sección restringida
Lo sentimos, actualmente no tienes permisos para participar en los comentarios de este post.