Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2011, 02:50
Saneko
 
Fecha de Ingreso: marzo-2011
Mensajes: 107
Antigüedad: 13 años, 7 meses
Puntos: 22
Sesiones en varios Controllers

Ya estoy aquí otra vez con el zend, ahora mi problema son las sesiones y las variables de sesiones. He estado echando un vistazo a otros temas en el foro [URL="http://www.forosdelweb.com/f68/consulta-zend-sesiones-522468/"]como en este[/URL] pero aún no he conseguido resolverlo en mi página.
1. Para iniciar la sesión tengo que poner Zend_Session::start(); pero dónde?
- En el Bootstrap?
Código PHP:
protected function _initSession()
    {
        
Zend_Session::start();
    } 
- En el Controller?
Código PHP:
public function Init()
    {
        
Zend_Session::start();
    } 
2. la siguiente línea es la del namespace que es para crear la variable de sesion o para recuperarla, no? La coloco también en el init de todos los controladores en los que voy a usarla?
Código PHP:
public function Init()
    {
        
Zend_Session::start();
        
$idioma = new Zend_Session_Namespace('id_idiomas');
    } 
3. Para dar valor a las variables creo que no tengo problemas(pongo el namespace aqui, pero en realidad solo le coloco en un sitio, o aqui o en el init)
Código PHP:
public function indexAction()    
    { 
       
$idioma = new Zend_Session_Namespace('id_idiomas');

      
      if(isset(
$idioma->id) && !empty($idioma->id))
      {
        
$idioma->id $idioma->id// viva la redundancia XD
      
}
      else
      {
        
$idioma->id 1;
      }
      
      
$this->view->numidioma $idioma->id;


    } 
4. Ahora si quiero visualizar o usar la variable de sesion en otra función o en otro controlador no sé si es que pierdo la sesion o no está bien guardada la variable, pero no aparece.
Código PHP:
public function caracteristicasAction()    
    {        
       
$idioma = new Zend_Session_Namespace('id_idiomas');
       
$this->view->idioma_id $idioma->id;
    } 
Quizá mis métodos no sean los más adecuados, pero así es como me han dicho de hacerlo.