FlashMessenger

ho due gravi problemi che si verificano in situazioni diverse.

sto usando il componente FlashMessenger per memorizzare e mostrare gli errori.

Giusto per rendere l'idea e focalizzare il problema eseguo questo set d'istruzioni

$this->_errors = $this->_helper->getHelper("FlashMessenger");
$this->_errors->addMessage("Messaggio di errore 1");
$errori=$this->_errors->getMessages();

print_r($errori);

Il problemi sono i seguenti

1) se faccio girare in locale lo script, al primo caricamento della pagina mi mostra un array vuoto, se poi aggiorno la pagina mi mostra l'array con il messaggio d'errore.

Il problema sembra risolversi se gli faccio fare una redirect in automatico dopo che ho estrapolato i messaggi.. mah..

2)problema ancora piu grave se lo faccio girare sul server... mi mostra sempre un array vuoto....

vi prego...sto impazzendo ... help me  :buck:

inviato 7 anni fa
Toto007
X 0 X

allora ho verificato meglio è ho dedotto che

1) quando lo script gira in locale il problema si presenta solo dopo che ho fatto una submit di una form...però se chiamo direttamente lo script (senza passare dalla form) mi mostra correttamente l'array con il messaggio , senza quindi ad essere costretto a fare il refresh

2)in remoto invece lo script non funziona mai...cioè mi mostra l'arrary vuoto in ogni caso. La versione di php è la 5.2.x...

risposto 7 anni fa
Toto007
X 0 X

Per comprendere meglio il problema vi elenco le pagine complete

index.php (bootstrap)

set_include_path(get_include_path().PATH_SEPARATOR.'ZendFramework/library'.PATH_SEPARATOR.'.\models');  
 require_once('Zend/Loader/Autoloader.php');  
 Zend_Loader_Autoloader::getInstance();
 
 date_default_timezone_set('Europe/Rome');
 
 require ("config.php");
 
 /*connessione db*/
 try{
    
    $db=Zend_Db::factory("Pdo_Mysql",$login_db);
 
    $db->getConnection();
    
    } catch(Zend_Db_Adapter_Exception $e){
        die("Errore Connessione database : ".$e->getMessage());
    } catch(Zend_Exception $e){
        die("Zend Exception: ".$e->getMessage());
    }
      
    Zend_Registry::set('db',$db)  ;
    define('BASE_URL', str_replace('index.php','',$_SERVER['PHP_SELF']));  
  
            
    $options= array( 'layout' => 'main', 'layoutPath'=>'views/layouts','contentKey'=>'content');
    Zend_Layout::startMvc($options);
      
    Zend_Controller_Front::run('controllers'); 
 

---------------------------------------

/controllers/RegistrationController.php

class RegistrationController extends Zend_Controller_Action
    {
        public $_errors = null;
        
        public function init(){
             $this->_errors = $this->_helper->getHelper("FlashMessenger");
             $this->view->titolo =' Register your hosting ';
             $this->view->setEncoding('UTF-8'); 
        }
        
        function indexAction ()

       {
                
          //mi carica la form html in automatico  
              
        }  
        
        function registerAction()
        {
                    
                    $request=$this->getRequest();                    
                    if($request->isPost())
                    {
                        $this->_errors->addMessage("Company");                      
                        $prova=$this->_errors->getMessages();
                        print_r($prova);  //IL PROBLEMA SI PRESENTA QUI QUANDO CHIAMO LO SCRIPT TRAMITE LA SUBMIT DI UNA FORM....
                   }
                                              
                        
                    $this->_helper->viewRenderer->setScriptAction("index");
                     
        }
        
     
        
  }
risposto 7 anni fa
Toto007
X 0 X

come non detto...il problema si presenta lo stesso anche quando non faccio una submit...(avrò visto male prima..mah)

risposto 7 anni fa
Toto007
X 0 X

Ho risolto uno dei due problemi

Mi sono messo a spulciare tutte le funzioni di sto benedetta classe FlashHelper è ho trovato quella che fa per me...

Soluzione:

Per recuperare i messaggi subito dopo averli caricati, bisogna usare la funzione getCurrentMessages()

e non getMessages().

Non capisco perchè devono rendere tutto così complicato :S ...

L'altro problema rimane però...cioè che sul server i messaggi non vengono caricati proprio...come mai :S?

risposto 7 anni fa
Toto007
modificato 7 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda