Caducar sesión en PHP (por inactividad) y avisarle a ExtJs (redirigir al inicio)
Hola amigos, soy nuevo en el foro, es un placer pertenecer a esta maravillosa comunidad.
Bueno, quisiera que me ayudaran con algo que me imagino no es muy complicado. La cuestión es que un par de compañeros y yo hemos desarrollado un sistema, con ExtJs 3 + Codeigniter + PostgreSql. De hecho todavía sigue en desarrollo. Como muchos sabrán ExtJs es un framework que funciona del lado del cliente, y Codeigniter es otro framework que trabaja pero del servidor (PHP). En esta aplicación hago uso de sesiones, y las mismas caducan cada cierto tiempo. El detalle está en que cuando una determinada sesión caduca (PHP) la interfaz en ExtJs se sigue mostrando como si siguiera activa (obvio esto es el cliente). Ustedes dirán: "pero haz un simple AJAX y listo!", ok yo lo sé y lo entiendo. Pero al poseer múltiples botones que me conducen a un menú, y estos a su vez a un sub-menú, entonces tendría que hacer ese llamado a AJAX en cada uno de ellos así como en los formularios al hacer consultas, guardados, etc. Quisiera saber si en extjs hay algo o alguna forma muy global de hacer eso que quiero sin tener que colocar ese llamado en cada parte de mi aplicación, realmente me falta un mundo por conocer sobre ExtJs.
En pocas palabras quiero mandarle un valor al cliente (ExtJs) para que se redirija a la página de inicio por el tiempo de inactividad de un usuario, y eso lo da PHP. quién o quienes me ayudan? :-D
Yo lo que normalmente hago es extender la clase Ext.data.Connection, luego creo una instancia de esa extensión y la llamo algo como "Bleext.Ajax" y utilizo en todas mis clases este objeto para hacer peticiones Ajax, también modifico el código del proxy para que use mi clase en lugar de Ext.Ajax.
Dentro de mi clase agrego la lógica para manejar de manera global mensajes de error, cuando la sesión caduca, etc..
Saludos
mmmm ok gracias Crysfel, de todas formas ya me ideé algo que me está saliendo bien evaluando las variables de sesión con la función empty en php. Si está vacía es porque la sesión expiró y mediante el ajax envío un valor "X" el cual capturo de regreso y me muestra un mensaje que indica al usuario que la sesión expiró por inactividad y que el sistema se reiniciará en 5 segundos, haciendo un conteo regresivo (hice una función para eso usando la clase Ext.util.TaskRunner), pero voy a tomar en cuenta tu consejo y ver que tal lo que me dices.
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.