Errore pagina non trovata!

SAlve a tutti sto cercando di creare un catalogo online seguendo la struttura delle cartelle come da tutorial(models,views,controllers).

Ho pensato di gestire il pannello admin all'interno di un controller chiamato AdminController che richiamerà i metodi di diversi modelli in base alle azioni da svolgere.

Per adesso ho solo creato il metodo newprodAction che permette l'inserimento di un nuovo prodotto da form:

class AdminController extends Zend_Controller_Action {
   
   protected $_flashMessengers = null;
   
   public function init(){
      
      $this->_flashMessengers = $this->_helper->getHelper('FlashMessenger');
      if($this->_hasParam('annulla')){
      $this->_redirect('admin/admin');
      }
   }
   
   public function newprodAction(){
    
    $this->view->titoloPagina('Inserisci un prodotto');   
   $this->_helper->viewRenderer->setScriptAction('adminForm');      
   
   $request = $this->getRequest();

   if ($request->isPost()){
    
    $prodotto = new Prodotti;
      
      $codice = $this->getPost("codice");
      $descrizione = $this->getPost("descrizione");
      $categoria = $this->getPost("categoria");
      $prezzo = $this->getPost("prezzo");
      
      try{
             $prodotto->addorupProdotti(false,$codice,$descrizione,$categoria,$prezzo);
            $this->_flashMessengers->addMessage("Prodotto '$codice' inserito con successo!");
            $this->_redirect('/');
            }
      catch(Zend_Exception $e){
            $this->view->errMsg = $e->getMessage();
            $this->view->prodotto = array (
            'codice'      => $codice,
            'descrizione' => $descrizione,
            'categoria'   => $categoria,
            'prezzo'      => $prezzo);
       }
   }
      
}
   
   
}

ho creato un template al volo prendendo sempre spunto dal tutorial per verificare il funzionamento dello script :

<?php echo $this->render('header.phtml'); ?>
<p class="errore"><?php echo $this->escape($this->messaggi[0])?></p>
<form action="" method="post">
   <fieldset>
   <legend>Dati del prodotto</legend>
       <p><label>Codice*:<br />
           <?php echo $this->formText('codice', $this->prodotto['codice'], array('class'=>'inputForm')) ?>
       </label></p>
       <p><label>Descrizione*:<br />
           <?php echo $this->formTextarea('descrizione', $this->prodotto['descrizione'], array('rows'=>5, 'cols'=>50)) ?>
       </label></p>
       <p><label>Cateogria*:<br />
           <?php echo $this->formText('categoria', $this->prodotto['cateogria'],array('class' =>'inputForm')) ?>
       </label></p>
       <p><label>Prezzo*:<br />
           <?php echo $this->formText('prezzo', $this->prodotto['prezzo'],array('class' => 'inputForm')) ?>
       </label></p>
       <p>* campo obbligatorio</p>
       <div class="buttons">
          <input type="submit" name="annulla" value="Annulla" /><input type="submit" name="invia" value="Invia" />
       </div>
   </fieldset>
</form>
<?php echo $this->render('footer.phtml'); ?>

questo invece è il codice della classe Prodotti:

class Prodotti
{
   
   public function addorupProdotti($idprod, $codice, $descrizione, $categoria, $prezzo ){
      
   $db = Zend_Registry::get('db');   
   $codice = trim($codice);   
   $descrizione = trim($descrizione);   
   $categoria = trim($cateogria);
   $prezzo = trim($prezzo);
   
   ///////////controllo i campi obbligatori///////////////////////////
   if (!$codice){
         throw new Zend_Exception("Inserire un codice prodotto!");
         }
   if (!$descrizione){
      throw new Zend_Exception("Inserire un descrittivo!");
         }
   if (!$categoria){
      throw new Zend_Exception("Inserire il prodotto in una categoria!");
         }
   if (!$prezzo){
      throw new Zend_Exception("Inserire un prezzo!");
   }
   ////////////////////////////////////////////////////////////////////
   ////////////Settaggio dati per il database//////////////////////////
   $dati = array (
   'codice'       => $codice,
   'descrizione'  => $descrizione,
   'categoria'    => $categoria,
   'prezzo'       => $prezzo);
      
   if ($idprod){
      $where = "idprod = " .(int)$idprod;
      return $db->update('prodotti', $dati, $where);
      }
   else {
      return $db->insert('prodotti', $dati);
      }   
      
   }
   
   public function deleteProd($idprod){
      
      $db = Zend_Registry::get('db');
      $where = "idprod = ". (int)$idprod;
      return $db->delete('prodotti', $where);
   }
   ////////metodo che deve implementare ricerca
   public function getAllprod($categoria,$prezzo,$descrizione,$codice){
      
      $db = Zend_Registry::get('db');
      if (!categoria & !$prezzo & !$descrizione & !$codice){
         $sql = "SELECT * FORM prodotti ORDER BY idprod";
         return $db->fetchAll($sql);
         }
      }
   
   public function viewProd($idprod){
      
      $db = Zend_Registry::get('db');
      $sql = "SELECT * FROM prodotti WHERE idprod = ".(int)$idprod;
         return $db->fetchRow($sql);
      }
   
}

?>

Il file di bootstrap è preso pari pari dal tutorial dato che rispetto la struttura dei files.

non so dove sbattere la testa, ho creato una index.phtml con dei links che richiamano /admin/newprod/

per vedere il risultato dello script ma mi da sempre la pagina di errore!

inviato 8 anni fa
cyberkaos
X 0 X

questo è l'unico controller che ti da problemi o non ce ne sono altri?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

no ce ne sarebbe un altro per la verità...il controller login che però ho tolto adesso.

Avevo pensato di risettare da zero il path del Front Controller ....ho provato ma il risultato e lo stesso....

Scusa se sto facendo casino sul forum(Ho inserito un altro post con lo stesso problema <<PAgina non trovata>>).

Tieni il post che ritieni piu chiaro....e scusa ancora.

Hai qualche idea?

risposto 8 anni fa
cyberkaos
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda