Ver Mensaje Individual
  #21 (permalink)  
Antiguo 30/12/2010, 02:37
Avatar de masterpuppet
masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: unset en Zend

A veces los errores te patean los ojos y uno no los ve, el problema es que nunca se inica la sesion, el encargado de esto es Zend_Session::start y Zend_Session_Namespace lo llama en el constructor, al no crear primero la instancia y al no inicializar la sesion por otro mecanismo(login de usuario por ej) Zend_Session_Abstract::$_writable esta en false, esto:

Código PHP:
Ver original
  1. public function quitarAction(){
  2.         $x = 1;
  3.         $this->_helper->viewRenderer->setNoRender();
  4.         $this->_helper->layout->disableLayout();
  5.        
  6.         try{
  7.             unset($this->orden);
  8.             unset($this->orden_n);
  9.             Zend_Session::namespaceUnset('orden');
  10.             Zend_Session::namespaceUnset('orden_n');    
  11.         }catch(Exception $e){  
  12.             $this->logger->log("UNSET SESION ".$e->getMessage(),Zend_Log::ERR);
  13.         }
  14.  
  15.         $this->orden = new Zend_Session_Namespace('orden');
  16.         $this->orden_n = new Zend_Session_Namespace('orden_n');
  17.         ....

deberia ser esto:

Código PHP:
Ver original
  1. public function quitarAction(){
  2.         $x = 1;
  3.         $this->_helper->viewRenderer->setNoRender();
  4.         $this->_helper->layout->disableLayout();
  5.  
  6.         $this->orden = new Zend_Session_Namespace('orden');
  7.         $this->orden_n = new Zend_Session_Namespace('orden_n');        
  8.  
  9.         try{
  10.             unset($this->orden);
  11.             unset($this->orden_n);
  12.             Zend_Session::namespaceUnset('orden');
  13.             Zend_Session::namespaceUnset('orden_n');    
  14.         }catch(Exception $e){  
  15.             $this->logger->log("UNSET SESION ".$e->getMessage(),Zend_Log::ERR);
  16.         }

o agregar al Bootstrap:

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

Proba y nos cuentas.