[contact-form-7 id="24084" title="Feedback ES"]

Plantillas Destacadas

Soluciones de Problemas de Joomla. Error ‘Invalid Token’

Al trabajar con sitio web Joomla puede recibir el mensaje de error Invalid Token/Token no válido. En esta entrada vamos a describir el error y ofrecer alguna forma de resolverlo.

¿Qué son Tokens?

Primero Tokens aparecieron en Joomla 1.5.3. Ellos fueron presentados como una característica de seguridad para los formularios. Cualquier formulario en un sitio web Joomla hay que ser aprobado por token. Si esto no ocurre, obtiene un error de token no válido. Esto es realmente bueno, ya que frustra los intentos de hack y spam.

¿Qué está afectado?

Todos los formularios en Joomla están afectados por esto. Este error es más frecuente en los formularios de ingreso y registro, ya que son los más utilizados.

¿Por qué estamos recibiendo errores de Tokenno válido?

Hay muchas razones, y aquí está una lista de las más comunes:

Expired cookie (expiracion de cookie): Cookie, que Joomla espera que tenga, ha expirado. Hay que borrar cookies y tratar de ingresar de nuevo.

Caching:

  1. Desactive caching completamente. Este es un proceso de dos pasos:
    1. Ingrese a su panel de control de Joomla, abra Site (Sitio), Global Configuration (Configuración global), System (Sistema), y haga clic en “No” junto a Cache en Cache Settings (Configuración de caché).
    2. Desactive el plugin de caché del sistema, eligiendo Extensions (Extensiones),Plugins, a continuación, busque System – Cache (Sistema – Caché) y haga clic en la casilla de verificación junto a ella, y finalmente haga clic en Disable (Desactivar) en la parte superior derecha.
  2. Arregle el código del inicio de sesión (o otra característica), comentando la verificación de token.

En el fichero de formulario busque el siguiente código:

  <input type="hidden" name="<?php echo JUtility::getToken(); ?>" value="1" />  

y reemplácelo con

   <?php echo JHTML::_( 'form.token' ); ?>  

Uso del modo ‘legacy’/ el modo de herencia (el modo de Joomla 1.0): Sólo desactive el plugin de ‘legacy mode’.

Uso de código ‘legacy’ /legado para la comprobación de tokens: Hay que cambiar este código. Aquí hay solucciones de este problema:

  • Abra el fichero /modules/mod_login/tmpl/default.php y reemplace la línea <?php JUtility::getToken(); ?> por <?php echo JHTML::_( ‘form.token’ ); ?>
  • En muchos casos, el módulo de inicio de sesión es reemplazado por plantilla, por lo que necesita verificar el código en su plantilla para ver si está utilizando JUtility::getToken(); y reemplazarlo por JHTML::_( ‘form.token’ );

Cookies desactivados en el navegador: Si cookies están desactivados en su navegador, entonces definitivamente va a tener este problema. Hay que activar cookies.