Creare pagine di errore personalizzate con PHP - GM Multimedia

Vai ai contenuti

Menu principale:

Creare pagine di errore personalizzate con PHP

HTML.HTML5.PHP CSS.CSS3.Javascript


         In questo articolo vedremo come creare delle pagine di errore personalizzate (ad esempio la famosa "404: Page not Found")  e fare in modo di ricevere una mail quando una di queste pagine viene mostrata nel vostro sito.
         Sebbene il file .htaccess venga usato solitamente per ragioni di sicurezza, può tornare utile per altri scopi, tra cui la gestione delle pagine di errore.
         In pratica, grazie al file .htaccess, imposteremo come pagina di errore un piccolo script PHP che ci invierà un avviso non appena l'errore viene generato contenente alcune utili informazioni per risorlvere il problema.
         Qui ci limitiamo alla pagina 404, ma una volta compreso il meccanismo basterà replicarlo con poche modifiche per adattarlo alle pagine 401, 403, 500, ecc.

Requisiti
  1. Apache come webserver
  2. la possibilità di personalizzare le pagine di errore
  3. la possibilità eseguire codice PHP

Creazione del file .htaccess
         Con un editor di testo, tipo notepad, crea un nuovo file e salvalo come ".htaccess". Le virgolette sono importanti, altrimenti verrà aggiunta l'estensione .txt. Se non dovessi riuscirci, non preoccuparti. Salva pure il file come "htaccess.txt"; sarà possibile modificare l'estensione una volta caricato sul server.
         All'interno del file .htaccess viene usata una direttiva ErrorDocument. Questa ha lo stesso formato per ogni tipo di errore e dice al server quale pagina mostrare quando si verifica un errore. La sintassi è la seguente:

ErrorDocument numero_errore /un_file_qualsiasi.html

ErrorDocument non varia e, naturalmente, numero_errore viene sostituito dal numero dell'errore (ad esempio 404, 403, etc); un_file_qualsiasi.html è il file che verrà mostrato al visitatore al verificarsi dell'errore.
         Questo file può avere una qualsiasi estensione comprensibile dal browser, come ASP, HTML o PHP (che useremo in questo tutorial).
         Assicurati di avere il file .htaccess aperto, e digita la seguente riga:

ErrorDocument 404 /404.php

         Così facendo, quando si verifica un errore 404 (page not found/pagina non trovata) il file .htaccess farà in modo che venga visualizzata la pagina 404.php, al posto della pessima pagina di Apache.

Creazione della pagina di errore
         Vediamo ora come creare le pagine PHP. Prima di creare la pagina di errore, è necessario specificare alcune variabili che saranno usate in tutte le pagine di errore. Un file di configurazione conterrà le variabili e sarà usato per tutti i tipi di errore. Per esempio, se dovessi cambiare indirizzo e-mail o vuoi che gli errori vengano inviati ad un indirizzo diverso, basterà modificare il file di configurazione, invece di editare tutte le singole pagine di errore.

Con il tuo editor preferito, crea un nuovo file chiamato config.php e digita il testo seguente:

<?php
// tuo indirizzo email
$mailto = "webmaster@tuodominio.it";
// URL della homepage tuo sito
$url = "http://www.tuodominio.it/";
?>
Salva il file e chiudilo. Ora apri nuovamente l'editor di testo, crea un nuovo file e salvalo come 404.php. Questa sarà la pagina che verrà mostrata dal file .htaccess al verificarsi dell'errore 404. Il file in questione dovrà contenere il seguente codice PHP:
<?php
//includere il file di configurazione...
include "config.php";
// per ottenere l'url che ha generato l'errore
$where = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//prepara il messaggio
$subject = "Errore 404";
$body .= "Un errore 404 si è verificato nel tuo sito: " . $url . "\n\n";
$body .= "La pagina richiesta era: " . $where . "\n\n";
// ora invia la mail
mail($mailto, $subject, $body, "From: errore@miosito.it");
?>

         Adesso bisogna aggiungere l'output in HTML, che verrà mostrato al visitatore e lo informerà dell'errore. Aggiungi il seguente codice HTML sotto il blocco del codice PHP appena visto:

<html>
<head>
<title>ERRORE 404 - Pagina inesistente</title>
</head>
<body>
<p>
<b>Errore 404</b> Pagina inesistente<br><br>
Spiacente, la pagina che hai richiesto non esiste, o è stata rimossa.<br>
<a href="<? echo $url; ?>">Clicca qui per tornare all'homepage</a>
</p>
</body>
</html>

         Avrai notato che l'URL specificata nel file config.php viene usata nel codice HTML. Il codice non fa altro che prendere il valore dal file di configurazione e trasformarlo in link. Ovviamente questa pagina è molto semplice, ma nessuno ti vieta di personalizzarla come meglio credi, in modo da uniformarla alle altre pagine del sito.
Salva il file 404.php. Il prossimo passo sarà caricare i file appena creati.

Caricare i file sul server
         Con un client FTP, connettiti al tuo sito e portati nella cartella dove vuoi usare i file. Ti suggerisco di caricare tutto nella root. I file da mettere online sono:
  1. config.php
  2. 404.php
  3. .htaccess

         Importante: Assicurati che il file .htaccess venga trasferito in modalità ASCII.
Adesso puoi testare il codice. Digita l'indirizzo del tuo sito, ed aggiungi il percorso per un file che non esiste... Dovresti visualizzare la pagina di errore e ricevere la mail che ti informa dell'errore.

Conclusioni
         Questo è sicuramente un ottimo modo per avere un sito sempre aggiornato e funzionante, grazie alla notifica istantanea degli errori.
         Naturalmente ci sono altre pagine che puoi creare per tutta una serie di errori.

         I più comuni sono:
  • 401 - Authorization Required (Autorizzazione Necessaria)
  • 400 - Bad request (Richiesta errata)
  • 403 - Forbidden (Proibito)
  • 500 - Internal Server Error (Errore interno del server)
  • 404 - Wrong page (Pagina errata)

         Non mi resta che augurarvi buon lavoro!


Visitatori online:
Sei il nostro visitatore n°:
© - Copyright 2015. - Tutti i diritti riservati - G.M. Multimedia
Torna ai contenuti | Torna al menu