Foros del Web » Programando para Internet » PHP » Zend »

Sesiones Zend Framework

Estas en el tema de Sesiones Zend Framework en el foro de Zend en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/02/2011, 09:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
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
  #2 (permalink)  
Antiguo 02/02/2011, 09:30
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Sesiones Zend Framework

No entiendo porque queres utilizar sesiones de esa forma, lo correcto es el segundo ejemplo y para un sistema de login deberías estar utilizando Zend_Auth, igual en donde seteas $_SESSION['id'] ? y si haces uso de sesiones de esa forma, donde haces session_start o al menos Zend_Session::start ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 02/02/2011, 10:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Sesiones Zend Framework

Bueno como indiqué, estoy leyendo un material para aprender sobre esta librería, ya que nunca la he usado y ahora que tengo mega proyectos sé que me va a facilitar la existencia Bueno solo es cuestión de aprendizaje, ya que no veo donde empezó el session_start. Según el libro en el public/index.php está usando Zend_Session. Lo busqué y no lo encontré. Leí por internet que se requiere usar Zend_Session::start(), pero me decidí por usar Zend_Session_Namespace. Ya había leido el de usar Zend_Auth pero no lo he leído en si el material, estoy poco a poco. En lo que busco por internet, ¿me podrías mencionar un ejemplo de uso de Zend_Auth y así continúo?

Bueno mientras tanto me remito al manual oficial para leer la información
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 02/02/2011, 10:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Sesiones Zend Framework

En el manual hay un buen ejemplo de como usar Zend_Auth y como persistir los datos de login
  #5 (permalink)  
Antiguo 02/02/2011, 10:18
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Sesiones Zend Framework

Te dejo dos referencias http://weierophinney.net/matthew/arc...Framework.html y esta algo mas avanzada http://weierophinney.net/matthew/arc...e-Widgets.html, te comento abimaelrc que es recomendación de Zend, inicializar la sesión en el bootstrap, deberías tener algo así:

Código PHP:
Ver original
  1. protected function _initSession()
  2. {
  3.    Zend_Session::start();
  4. }

te evita problemas cuando utilices los namespaces.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 02/02/2011, 10:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Sesiones Zend Framework

@GatorV, sí lo acabo de ver y se ve sencillo, estoy practicando a ver como me va
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 02/02/2011, 10:22
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Sesiones Zend Framework

@masterpuppet, también lo leí, la razón según entendí es porque el bootstrap se ejecuta siempre antes de que se envíe cualquier información al navegador, por lo tanto se envita cualquier mensaje como header already sent..... Pero como no voy a estar usando esa librería sino la segunda, no le veo necesidad de hacerlo, bueno por ahora.

Añado gracias por los dos enlaces los verifico y te dejo saber
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 02/02/2011, 10:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Sesiones Zend Framework

Aunque no uses esa librería y lo hagas de forma "manual" deberías de ahí colocar el session_start(), aunque eso te va a llevar a más problemas, ya que Zend_Auth sí depende de Zend_Session_Namespace .

Internamente Zend_Session::start() hace uso de session_start() por lo que lo puedes usar y seguir usando $_SESSION.

Saludos.
  #9 (permalink)  
Antiguo 02/02/2011, 10:31
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Sesiones Zend Framework

Va mas alla de ese error abimalerc, por defecto la sesion esta lockeada, y te puede dar mas de un dolor de cabeza, la recomendación es para cuando uses sesiones, osea siempre que utilices Zend_Session_Namespace o Zend_Auth(el storage por defecto es session).
__________________
http://es.phptherightway.com/
thats us riders :)
  #10 (permalink)  
Antiguo 02/02/2011, 10:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Sesiones Zend Framework

Pero entonces Zend_Session_Namespace no vi la necesidad de usar Zend_Session::start() en el bootstrap porque según vi lo hace automáticamente. ¿Cómo quiera es necesario el usar Zend_Session::start() en el bootstrap?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 02/02/2011, 10:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Sesiones Zend Framework

Es recomendable, mas no necesario, para evitar errores de cabeceras.
  #12 (permalink)  
Antiguo 02/02/2011, 10:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Sesiones Zend Framework

Entendido
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: framework, sesiones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:23.