Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/02/2011, 09:16
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Sesiones Zend Framework

Saludos corillo,

En el material que estoy leyendo enseñan como loguearse a un sistema usando lógicamente sesiones pero sin usar Zend_Session_Namespace. En el ejemplo cuando se loguea la primera vez enseña la información, pero si estando en la página vuelvo a enviar la petición pulsando la barra de dirección y presionando la tecla de enter me vuelve a enviar a la página de logueo. Algo sencillo para que vean lo que hago
Código PHP:
Ver original
  1. public function infoAction()
  2. {
  3.     if(!isset($_SESSION['id'])){
  4.         $this->_forward('login');
  5.     }else{
  6.         echo $_SESSION['id'];
  7.     }
  8. }
De esa forma la primera vez si funciona pero si vuelvo a enviar la petición me muestra de nuevo a action de login. Ahora si lo hago con Zend_Session_Namespace puedo hacer todas la peticiones que quiera y se mantiene. Ejemplo
Código PHP:
Ver original
  1. public function infoAction()
  2. {
  3.     require_once 'Zend/Session/Namespace.php';
  4.     $login = new Zend_Session_Namespace('login');
  5.     if(!isset($login->id)){
  6.         $this->_forward('login');
  7.     }else{
  8.         echo $login->id;
  9.     }
  10. }
¿Por qué caduca la sesión inmediatamente en el primero y como resolver para que el primero mantenga la sesión hasta que cierre el navegador o haga logout? Verifiqué el php.ini y tiene session.cookie_lifetime = 0; Así que no puede ser configuración del php.ini.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos