Problema con "pagina non trovata"

Ciao a tutti.

Ho scaricate e letto il tutorial per l'utilizzo di zend, ma ho un problema: accedendo al sito ottengo sempre la "pagina non trovata".

Ho letto altri topic e, smanettando un p, ho scoperto che se dalla view index.phtml tolgo questa riga:

<p class="errore"><?php echo $this->escape($this->messaggi(0))?></p>

la "pagina non trovata" non viene pi emessa e riesco a vedere il link per l'inserimento di un nuovo articolo.

Io avevo capito che il controller degli errori viene richiamato da zend quando non trova un controller adatto alla richiesta dell'utente, invece vedo che l'elaborazione arriva fino alla view dell'indexcontroller prima di dare "pagina non trovata"... qualcuno s spiegarmi meglio ?

In seconda battuta ho fatto la getMessage() nell'errorcontroller, vi posto il risultato cos ottenuto al posto della "pagina non trovata":

Plugin by name 'Messaggi' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/;./views\helpers/ #0 C:\www\ProvaZend\library\Zend\View\Abstract.php(1105): Zend_Loader_PluginLoader->load('Messaggi') #1 C:\www\ProvaZend\library\Zend\View\Abstract.php(556): Zend_View_Abstract->_getPlugin('helper', 'messaggi') #2 C:\www\ProvaZend\library\Zend\View\Abstract.php(323): Zend_View_Abstract->getHelper('messaggi') #3 [internal function]: Zend_View_Abstract->__call('messaggi', Array) #4 C:\www\ProvaZend\views\scripts\index\index.phtml(2): Zend_View->messaggi(0) #5 C:\www\ProvaZend\library\Zend\View.php(107): include('C:\www\ProvaZen...') #6 C:\www\ProvaZend\library\Zend\View\Abstract.php(820): Zend_View->_run('.\views\scripts...') #7 C:\www\ProvaZend\library\Zend\Controller\Action\Helper\ViewRenderer.php(902): Zend_View_Abstract->render('index/index.pht...') #8 C:\www\ProvaZend\library\Zend\Controller\Action\Helper\ViewRenderer.php(923): Zend_Controller_Action_Helper_ViewRenderer->renderScript('index/index.pht...', NULL) #9 C:\www\ProvaZend\library\Zend\Controller\Action\Helper\ViewRenderer.php(962): Zend_Controller_Action_Helper_ViewRenderer->render() #10 C:\www\ProvaZend\library\Zend\Controller\Action\HelperBroker.php(276): Zend_Controller_Action_Helper_ViewRenderer->postDispatch() #11 C:\www\ProvaZend\library\Zend\Controller\Action.php(513): Zend_Controller_Action_HelperBroker->notifyPostDispatch() #12 C:\www\ProvaZend\library\Zend\Controller\Dispatcher\Standard.php(285): Zend_Controller_Action->dispatch('indexAction') #13 C:\www\ProvaZend\library\Zend\Controller\Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #14 C:\www\ProvaZend\library\Zend\Controller\Front.php(214): Zend_Controller_Front->dispatch() #15 C:\www\ProvaZend\index.php(30): Zend_Controller_Front::run('controllers') #16 {main}

Qualcuno s dirmi cosa sta accadendo ?

Grazie mille per l'aiuto.

inviato 7 anni fa
dacdam
X 0 X

Cos' "messaggi"?

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

"messaggi" la variabile che indexcontroller usa per passare alla view i messaggi presi dall'helper 'FlashMessenger' questo il codice preso dal IndexController del tuo tutorial:

$fm = $this->_helper->getHelper('FlashMessenger');

$this->view->messaggi = $fm->getMessages();

Poi, nel view, "messaggi" viene usata per notificare all'utente le comunicazioni con questa operazione:

<p class="errore"><?php echo $this->escape($this->messaggi(0));?></p>

Facendo delle prove, se trasformo "messaggi" in una stringa invece di fargli contenere FlashMessenger, tutto funziona. Quindi penso che il problema sia il reperimento dell'helper... ma non capisco come, visto che ho fatto tutto uguale al tutorial...

risposto 7 anni fa
dacdam
X 0 X

sostituisci

$this->messaggi(0)

con

$this->messaggi[0]

:bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Caspita... :-[

Scusami per l'errore stupido.

Avrei ancora una domanda: sistemato il problema ho cominciato ad ottenere il seguente messaggio:

Notice: Undefined offset: 0 in C:\www\ProvaZend\views\scripts\index\index.phtml on line 2

Penso che venga emesso perch nel registry non c' nessun messaggio di errore "parcheggiato".... cos ?

Io ho risolto mettendo ad off il display_errors nel file htaccess... ho fatto bene o c'era un metodo migliore ?

Grazie mille per l'aiuto!

risposto 7 anni fa
dacdam
X 0 X
Penso che venga emesso perch nel registry non c' nessun messaggio di errore "parcheggiato".... cos ?

Si

Io ho risolto mettendo ad off il display_errors nel file htaccess... ho fatto bene o c'era un metodo migliore ?

Hai fatto male! Non dovresti silenziare gli errori, almeno sulla macchina di sviluppo. Piuttosto ti basta controllare la presenza dell'elemento 0 dell'array con un if(isset(...

:bye:

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