Skip to main content

Pagina bianca in Joomla anche con visualizzazione degli errori attivata

Quando il vostro sito Joomla vi mostra una pagina completamente bianca anzichè il normale contenuto, significa che qualcosa è andato storto.

Il caso più frequente è che si tratti di un errore PHP; nel qual caso solitamente è sufficiente vedere di che errore si tratta.

C’è però un caso più raro in cui la pagina rimane bianca nonostante tutto: si tratta di un bug in un plugin.

Vediamo le soluzioni per entrambi casi.

Attivare la visualizzazione degli errori

Una schermata che mostra il parametro da modificare nella configurazione di JoomlaNella maggior parte dei casi una pagina completamente bianca in un sito Joomla dipende da un errore PHP.

Se abbiamo appena attivato una nuova estensione, ovviamente il consiglio è quello di disattivarla e chiedere supporto all’autore dell’estensione.

Se però non siamo sicuri da che estensione dipenda, una buona procedura è quella di attivare la visualizzazione degli errori.

Andate nella configurazione globale di Joomla, nella scheda Server: vedrete un parametro di nome “Rapporto errori“.

Normalmente, tale parametro deve restare impostato su “Default sistema”. Se però vogliamo analizzare un errore che provoca una pagina bianca, possiamo impostarlo su “Massimo”.

Ricaricando la pagina, dovremmo riuscire a vedere qualche dettaglio in più sull’errore.

Non è detto che siamo in grado di risolverlo, dato che probabilmente si deve intervenire sul codice, ma magari riusciamo a capire di che estensione si tratta, e in qualunque caso siamo in grado di fornire dettagli aggiuntivi a chiunque ci fornisca supporto.

Se la pagina rimane bianca

Nel caso in cui abilitare tale opzione non cambi nulla, ci sono due possibilità.

La prima è che il nostro ambiente di hosting non consenta la modifica dinamica di questo parametro. Infatti, anche se noi lo troviamo come parametro di Joomla, di fatto è una impostazione PHP quella che stiamo cambiando.

In tal caso potrebbe essere necessario per noi intervenire direttamente sul pannello di gestione del nostro hosting e/o richiedere supporto al nostro fornitore.

La seconda è che abbiate incontrato un raro bug legato al plugin “System – SEF”.

System – SEF plugin bug

Dal backend di Joomla, disattivate il plugin System – SEF e poi ricaricate il vostro sito.

Se funziona tutto, complimenti! Avete incontrato un bug davvero raro 🙂

Come risoluzione definitiva, potreste anche lasciarlo disattivato nel caso in cui:

  • non stiate usando indirizzi SEF, oppure
  • stiate usando un diverso componente per ottenere indirizzi SEF.

In pratica non avete bisogno del plugin SEF se non state usando le opzioni SEF native di Joomla.

E ora qualche dettaglio tecnico

Per i più curiosi, o per quelli che devono necessariamente usare tale plugin, ecco qualche dettaglio tecnico che vi può aiutare a decidere come risolvere la questione.

Come spesso accade, tale bug è il frutto di più condizioni che si verificano contemporaneamente.

Espressione regolare troppo avida

Il plugin SEF analizza il flusso HTML riga per riga ed applica delle sostituzioni, in modo da convertire tutti gli indirizzi non-SEF in SEF.

Una di tali sostituzioni non riconosce correttamente la fine del tag. Prendiamo ad esempio la riga di HTML:

<div style=”backgroud-image: url(…)”><p>Blablabla</p>…

La sostituzione dovrebbe preoccuparsi solo di individuare e modificare l’URL dell’immagine di background, ma per un errore nell’espressione regolare rileva come input anche tutto l’HTML che segue, fino alla fine della riga.

Riga troppo lunga

Se guardate la sorgente HTML di qualunque sito vedrete che risulta di più facile comprensione grazie al fatto che il codice è disposto su più righe.

Ricordatevi che al browser non servono queste formattazioni: vi farebbe vedere il sito uguale anche se l’HTML fosse scritto tutto su una riga sola.

Ma la maggior parte dei programmatori e web designer componenti formattano correttamente l’HTML andando a capo regolarmente, per una migliore leggibiità; quindi e singole righe risultano relativamente brevi.

Tuttavia succede ogni tanto che per pigrizia, o per ridurre la lunghezza, qualche modulo o componente produca una lunga stringa di HTML tutta su una riga.

Se la riga risultante è abbastanza lunga, il comando preg_replace utilizzato nel plugin si rompe! E il vostro sito diventa invisibile.

Soluzioni

Non esiste un’unica soluzione, dipende dal vostro sistema. Vediamo però alcuni possibili suggerimenti:

  • come già detto, potreste semplicemente disattivare il plugin System – SEF se non vi serve
  • potreste modificare il plugin commentando la specifica istruzione che dà errori. Gli URL delle vostre immagini di background non diventeranno SEF. Questa è la soluzione che abbiamo utilizzato noi.
  • potreste modificare l’espressione regolare. Noi non ci abbiamo ancora provato, ma non dovrebbe essere difficilissimo.
  • potreste modificare il componente che produce l’HTML anomalo. Se sapete per certo di quale estensione si tratta e avete accesso al codice, inserire degli a capo (“\n”) qua e là nel codice non fa certo male. Magari poi condividete l’informazione con l’autore dell’estensione, che fa sempre bene al vostro karma.

Commenti (6)

I commenti sono chiusi.