Tutorial Avanzati - ErrorPages - Xoops Italia


left Login right
Nome utente:

Password:


Hai perso la password?
Registrati ora!
left Ricerca right
left Community right
left Collaborare right
left Supporto right
left Access Key right
  • ALT+1 Home
  • ALT+2 News
  • ALT+3 Forum
  • ALT+4 Downloads
  • ALT+5 Contattaci
  • ALT+6 Faq
[Maiusc+Alt] con FFox 2 [Alt+Invio] con IExplorer
left Statistiche right
Utenti registrati:
Oggi: 0
Ieri: 1
Totali: 5666
Ultimo: ddt85

Utenti online:
Ospiti : 5
Membri : 0
Totali: 5
Lista utenti [Popup]

Tutorial Avanzati :: Temi e templates

ErrorPages


ErrorPages
Defkon1
Stanchi delle scarne pagine d'errore fornite dal vostro web server?
E' giunto il momento di integrarle nel vostro Xoops utilizzando il tema da voi scelto!
Intestazioni
  1. 0. Introduzione
  2. 1. Il file .htaccess
  3. 2. Le pagine d'errore
Profilo autore: Defkon1
Ingegnere informatico da anni impegnato nella comunità opensource.

Al momento è Webmaster del portale XoopsItalia.

0. Introduzione

Nel presente tutorial vedremo come personalizzare le pagine d'errore del nostro server inserendo la grafica del nostro portale e integrando il tutto in maniera trasparente.

Per gli esempi ho utilizzato una installazione di test di Xoops 2.0.13.2 con tema blue_lagoon.



E' inoltre necessario ricordare che la tecnica di personalizzazione che useremo si basa sulle funzionalità offerte dal server Apache, e non potrà essere usata su NT (a meno di diverse modifiche).

Cos'è una pagina d'errore?
E' semplicemente una pagina (spesso HTML) su cui venite indirizzati dal server web qualora si verifichi una richiesta errata o una generica situazione d'errore, come ad esempio la richiesta di una pagina inesistente o un crash del server.

Se provate a digitare sul vostro portale l'indirizzo http://www.tuosito.com/paginainesistente.php, verrete indirizzati sulla relativa pagina d'errore (codice errore: 404).

Normalmente, le pagine d'errore fornite di base dai server web sono veramente scarne:

Da qui l'esigenza per un portale serio di personalizzare le ErrorPages.


1. Il file .htaccess

Se nel vostro sito avete installato il modulo Protector o se avete un minimo di dimestichezza con le tematiche di Sicurezza, avrete già incontrato questo utilissimo file di configurazione di Apache; in questo caso lo utilizzeremo per sovrascrivere le informazioni relative al redirect del server web in caso di errore.

Aprite pertanto il file .htaccess della vostra root, è inserite il seguente codice:


Nel mio caso il dominio corrisponde a ermes, ovvero il nome del mio sistema locale utilizzato, per cui i miei link saranno qualcosa del tipo http://ermes/errorpages/400.php.




2. Le pagine d'errore

Le pagine di errore che andremo a creare coprono le seguenti casistiche:

Errore 400 – Richiesta errata (Bad Request)
Errore 401 – Necessaria autorizzazione (Authorization required)
Errore 403 – Accesso negato (Forbidden)
Errore 404 – Pagina non trovata (Not found)
Errore 500 – Errore interno del server (Internal server error)

Create la cartella /errorpages e create uno dei file php visti sopra, ad esempio il file 404.php.

Apritelo nel vostro editor e aggiungete il codice standard Xoops:

<?php
include("../mainfile.php");
include(XOOPS_ROOT_PATH."/header.php");

include(XOOPS_ROOT_PATH."/footer.php");
?>


A questo punto vi si aprono due strade davanti: la via dell'HTML, semplice e rozza, e la via del CSS, leggermente più complicata ma indubbiamente più pulita gratificante.
Se avete optato per la prima, basterà racchiudere il codice per l'header e il codice per il footer in due blocchi e inserirvi nel mezzo il codice HTML della vostra pagina d'errore, ad esempio:

<?php
include("../mainfile.php");
include(XOOPS_ROOT_PATH."/header.php");
?>

404: pagina non trovata

Siamo spiacenti, ma la pagina cercata è insesistente o è stata rimossa.

include(XOOPS_ROOT_PATH."/footer.php");
?>



Salvate e avete concluso.

Se invece volete intraprendere la via del CSS, rendendo il tutto graficamente migliore e più semplice da gestire, la vostra pagina d'errore dovrà contenere qualcosa del genere:

<?php
include("../mainfile.php");
include(XOOPS_ROOT_PATH."/header.php");

echo "<div class="blockErrorTitle">404: Pagina non trovata</div>";
echo "<br style="clear:both">";
echo "<div class="blockErrorContent">Siamo spiacenti, ma la pagina cercata è inesistente o è stata rimossa.</div>";
echo "<a href="history.go(-1)">Torna indietro</a></div>";

include(XOOPS_ROOT_PATH."/footer.php");
?>

ATTENZIONE: per problemi di parsing automatico del testo ho dovuto eliminare la \ davanti ai doppi apici all'interno delle stringhe echo. Voi ricordatevi di metterle, altrimenti l'editor impazzirà.
Inoltre ho dovuto eliminare il tag javascript : davanti a history.go(-1) per lo stesso motivo.

Stavolta il lavoro non è già finito. Come potete vedere abbiamo deciso di utilizzare due classi div personalizzate, blockErrorTitle e blockErrorContent che dobbiamo definire all'interno del file style.css del nostro tema.

Aprite tale file e in coda inserite le due classi personalizzate:

div .blockErrorTitle{
background-color: #ffcccc;
text-align:center;
border: 1px dashed #ff0000;
margin: 10px;
font-family: Verdana, Courier New, Courier, Monospace;
padding: 10px;
font-weight: bold;
font-size: x-large;
float: left;
}

div .blockErrorContent{
text-align: justify;
margin: 10px;
font-family: Verdana, Courier New, Courier, Monospace;
padding: 10px;
}

Salvate tutto e il gioco è fatto.

Uno dei vantaggi dell'utilizzo della tecnica dei CSS è quella di poter modificare completamente l'aspetto della pagina, semplicemente giocando con le varie proprietà specificate nelle due classi personalizzate. In questo tutorial ad esempio abbiamo optato per un titolo ben visibile con sfondo rosso chiaro e bordo tratteggiato e un testo semplice, ma le possibili variazioni sul tema sono infite.

Vista la prima, fare tutte le altre pagine è semplice, basterà cambiare il titolo e il testo della pagina. Ad esempio il file 403.php sarà:

include("../mainfile.php");
include(XOOPS_ROOT_PATH."/header.php");

echo "echo "<div class="blockErrorTitle">403: Accesso negato</div>";
echo "<br style="clear:both">";
echo "echo "<div class="blockErrorContent">Siamo spiacenti, ma l'accesso alla pagina richiesta è proibito.</div>";
echo "<a href="history.go(-1)">Torna indietro</a></div>";

include(XOOPS_ROOT_PATH."/footer.php");
?>

Una volta terminate le vostre pagine, vediamo il risultato. Digitate nuovamente http://www.tuosito.com/paginainesistente.php, e, se avete fatto tutto correttamente, dovreste vedere la pagina d'errore 404 correttamente integrata nella grafica del vostro portale.

<< Smarty e Xoops Visualizzare un messaggio di loading nel tuo sito Xoops! >>
API: Strumenti PM Email PDF Siti Preferiti Stampa | RSS | RDF | ATOM
© 2002-2008 | Xoops Italia
I commenti sono proprietà dei rispettivi autori. Non siamo in alcun modo responsabili del loro contenuto.
Autore Albero
Hal2004
Inviato: 16/4/2006 12:14  Aggiornato: 16/4/2006 12:14
Specialista
Iscritto: 7/6/2004
Da: Troppo lontano da casa...
Inviati: 130
 Re: ErrorPages personalizzate
Grazie Danton, tutorial (spiegato -come sempre- con la tua efficace chiarezza) molto utile per realizzare siti professionali; ne aproffiterò sicuramente. :
dantom
Inviato: 4/5/2006 3:23  Aggiornato: 4/5/2006 3:23
Xoopser Onorario
Iscritto: 9/3/2006
Da: Gallarate
Inviati: 1231
 Re: ErrorPages personalizzate
Ti ringrazio dei complimenti...ma non vanno a me .

Vanno a Defkon1, che è talmente bravo che ha superato il Maestro....LOL

Scherzi a parte...ottimo lavoro Def!

Dantom
adigweb
Inviato: 8/5/2006 23:30  Aggiornato: 8/5/2006 23:30
Specialista
Iscritto: 16/11/2005
Da: Civitavecchia -RM-
Inviati: 475
 Re: ErrorPages personalizzate
domandina...

con che programma devo aprire il file .htaccess ?

Grazie!
Defkon1
Inviato: 9/5/2006 11:23  Aggiornato: 9/5/2006 11:23
Webmaster
Iscritto: 24/8/2004
Da: Ancona
Inviati: 4752
 Re: ErrorPages personalizzate
un normalissimo editor di testi (ad es. Blocco note o Vim) andrà benissimo
adigweb
Inviato: 9/5/2006 12:10  Aggiornato: 10/5/2006 9:27
Specialista
Iscritto: 16/11/2005
Da: Civitavecchia -RM-
Inviati: 475
 Re: ErrorPages personalizzate
Grazie!
Ho realizzato le 5 pagine di errore come descritte nella prima parte (nel modo più semplice) ma, inserendo il testo blu grassetto all'interno di una tabella con sfondo colorato (simile al risultato finale dell'esempio).

Ma...ho dovuto "parcheggiare" il lavoro perchè, una volta messo all'opera, ho ricevuto decine di email di iscritti che non riuscivano a loggarsi...
In effetti, anche a me, è successo un paio di volte. Dopo il login, mi è tornata la pagina per...loggarmi. Mistero! :-o

PS: Il file .htaccess originale, deve essere sovrascritto? cosa che ho fatto...

turbolux
Inviato: 10/5/2006 14:12  Aggiornato: 10/5/2006 14:12
Niubbo
Iscritto: 9/7/2005
Da:
Inviati: 6
 Re: ErrorPages personalizzate
un consiglio per il futuro, quando fai delle nuove modifiche salva una copia dei file originali.. o sul tuo computer o rinominando quelli che andranno sostituiti (io solitamente aggiungo _old ai file che ho sul server) così se ti capiteranno dei problemi ha sempre la possibilità di tornare indietro!
plokko
Inviato: 22/7/2006 12:54  Aggiornato: 22/7/2006 13:03
Simpatizzante
Iscritto: 25/6/2006
Da: a casa mia
Inviati: 72
 Re: ErrorPages personalizzate
Per mettere il file .httaccess c'è 1 problemino se siete su win aggirabile tranquillamente:
se create un file ".httaccess" non ve lo fa creare
Create quindi un file "httaccess" ed editatelo con un editor di testo(blocco note ad esempio ma io <3 Scite)e poi uppatelo sul server(directory primcipale)
Ora rinominatelo ".httaccess" e tutto dovrebbe funzionare!

Ma scusa questo trucchetto mi sembra nn funzioni per le pagine .php,mi sembra ke si debba aggiungere questa stinga:
Citazione:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule \.php$ /errore/errore404.htm
Defkon1
Inviato: 21/8/2006 1:21  Aggiornato: 21/8/2006 1:21
Webmaster
Iscritto: 24/8/2004
Da: Ancona
Inviati: 4752
 Re: ErrorPages personalizzate
potrebbe non funzionare sui server Apache in cui sia stato impostato la non sovrascrittura degli indirizzi delle ErrorPages...
flymirco
Inviato: 14/12/2006 3:02  Aggiornato: 14/12/2006 3:04
Collaboratore
Iscritto: 14/7/2006
Da:
Inviati: 518
 Re: ErrorPages personalizzate
E' possibile fare un redirect automatico in caso di errore alla pagina precedente come avviene quando non si ha l'autorizzazione ad entrare in un modulo?
Si potrebbe usare la funzione redirect_header( ) dovendogli passare in qualche modo il valore della pagina precedente, qualcuno lo ha già fatto?

PS: ho inserito il file .htaccess su dominio Aruba linux ed ha funzionato correttamente seguendo le indicazioni del tutorial per le pagine di errore.

Ciao e grazie per le indicazioni!
Defkon1
Inviato: 15/12/2006 10:39  Aggiornato: 15/12/2006 10:39
Webmaster
Iscritto: 24/8/2004
Da: Ancona
Inviati: 4752
 Re: ErrorPages personalizzate
non è più semplice inserire allora un link javascript a history.go(-1), invece che trovare un modo per passarlo a redirect_header()?
timgno
Inviato: 12/1/2008 17:13  Aggiornato: 12/1/2008 17:13
Maestro
Iscritto: 16/5/2007
Da: Cosenza
Inviati: 830
 Re: ErrorPages personalizzate
perchè nel codice css la classe non funge e mi inserisce quello dei default?

risultato: http://risorseweb.netsons.org/paginainesistente.php


© 2002-2008 | XOOPS ITALIA
Xoops Italia Logo
Powered by Xoops 2.0.13.2 WAI Level-A Conformance Valid XHTML 1.0 Transitional Valid CSS astonstreet Xoops Themes XHtml Logo RSS 2.0