[php] Gestione degli errori

cawletto

Utente Attivo
475
25
CPU
i5 750
HDD
1 TB
RAM
6 GB
GPU
GXT 460 SE 1GB overclocked
Monitor
Samsung LCD 1280x1024
PSU
Cooler Master Silent Pro M 600 W
Case
HP
OS
Windows 7-64 bit
Ciao ragazzi sto creando un sito ma 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)
Come lo mando ? ... come fareste voi? :boh:
Grazie!!

---------- Post added at 18:51 ---------- Previous post was at 18:44 ----------

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?
 
Ultima modifica:

Roberto Buonanno

Amministratore
1,721
257
Ciao, di solito errori di questa gravità si sparano a tutto schermo :)
La cosa più pulita che potresti fare sarebbe elaborare tutto il codice della pagina prima dell'input e poi redirigere l'utente con una chiama
Codice:
header('Location: http://www.example.com/');

Altrimenti se vuoi mantenere il tuo approccio puoi fidarti del get se fai tutti i controlli del caso sulle query string. L'ideale è passare un numero che rappresenta un codice d'errore e poi fai come dici tu un error.php che mostra un errore in base al codice.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!