Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105

    gestire gli errori in un sito

    Ciao ragazzi mi serve un parere sulla gestione degli errori:
    Ho una pagina in cui avvengono tutti gli scambi con il database (mysql) e quindi è anche lì che gestisco tutte le accezioni.
    Il punto è proprio qui: una volta che l'eccezione viene generata questa viene salvata in un file di log e viene riempita una variabile $errore con il messaggio che io voglio che l'utente veda. Una cosa del genere:

    codice:
    $selected = mysql_select_db($db_name, $db);
    if (!$selected)
    {
        throw new Exception("Errore di connessione al database");
    }
    }catch(Exception $e)
    {    
         scrivo_nel_log($e->getTraceAsString());
        $errore  =  $e->getMessage(); // errore sarà 'Errore di connessione al database'
    }
    Ora che ho il mio bell'errore nella variabile lo devo rimandare alla pagina che per esempio è home.php... ma come lo mando ?
    Insomma è sicuro mandarlo tramite get ? (home.php?errore=Errore+di+connessione+al+database )
    stavo pensando..potrei creare un file error.php in cui c'è un array contenente tutti i messaggi d'errore per l'utente così magari passo per GET solo l'indice. Cosa ve ne pare?

    come fareste voi ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    non lo manderei così... cmq secondo me c'è un errore di fondo... se per esempio uno accede alla home e si genera un errore, la gestione dell'eccezione dovrebbe solo elaborare la richiesta e:
    - restituire un valore da far gestire direttamente alla pagina
    OPPURE
    - stampare l'errore

    ...se per esempio l'errore si verifica durante la visualizzazione di un "corpo della pagina", l'eccezione "bypasserà" l'output stampando solo il tuo errore.

    Diversamente... usa una variabile di sessione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Puoi fre un esempio concreto? Così capisco meglio quello ke vuoi dire..

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Comunque faccio un altro esempio per chiarire meglio il mio problema:
    Sono in ricetta.php:
    in questa pagina viene richiamata una funzione che si trova nel file db.php e che ha il compito di estrarre una ricetta specifica dal database. Mettiamo che ho scritto una query sbagliata viene sollevata un eccezione e, con il codice scritto prima, viene riportato l'errore nel file di log e la variabile $error diventa "Impossibile estrarre la ricetta dal database".
    Ora ho la necessità di informare l'autore quindi devo far arrivare alla pagina ricetta.php il mio errore. Quello che pensavo è di mandarlo tramite get alla pagina e, prima di stamparlo, verificare che sia veramente un errore e non altro confrontandolo con un array di errori creato precedentemente. Se è effettivamente un errore lo stampo a video. Cosa ne dite ?

  5. #5
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    per gestire gli errori in maniera personalizzata puoi usare la funzione set_error_handler, impostando una tua funzione per la gestione degli errori.
    Per esempio potresti presentare all'utente una pagina che avvisa in maniera 'carina' che la risorsa non è stata trovata o che c'è stato un errore temporaneo e di riprovare più tardi, nel mentre che l'applicazione ti avverte dell'accaduto.

    Nella pagina ci sono vari esempi.

    C'è da dire che utilizzando un framework tipo Zend Framework la cosa è già gestita tramite un controller adibito alla gestione degli errori ( ErrorController ).

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Grazie razor,la userò sicuramente ma così non risolvo il Problema:come mando l'errore alla pagina che dico io? Setto una variabile globale con l errore e reindirizzo alla pagina che lo mostrerà a video?

  7. #7
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    In un contesto non MVC probabilmente la cosa più semplice da farsi è salvare l'ultimo errore in sessione e quindi redirezionare l'utente nella pagina che si vuole, dove potrai recuperare i dati salvati e farne quello che desideri.


    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    secondo me l'errore logico è a monte: non si deve reindirizzare il flusso verso una certa pagina comunicando l'errore: questo deve essere "sollevato" direttamente dalla pagina in questione... è il flusso delle funzioni/procedure che arriva fino alla gestione dell'eccezione, ma la pagina "attiva" è già quella che ha generato l'errore

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Ho capito quello che vuoi dire ma perchè? Qual è il problema del "mandarlo"?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Concettualmente è errato: di fatto stai aprendo una pagina che NON ha l'errore, dicendole di aprirsi come se ci fosse un errore e poi devi fare dei "giri" in più... perchè devi fare questo redirezionamento? L'eccezione non è già generata dentro la pagina interessata?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.