La maggior parte dei messaggi di errore di WordPress danno un’idea di ciò che sta causando problemi al vostro sito. L’errore “Warning: cannot modify header information – headers already sent by” non fa eccezione. Se un file PHP non può essere eseguito a causa di un problema di codice, riscontrerete questo messaggio.

Sono diverse le possibili cause dell’errore “Cannot modify header information”. Per fortuna, il messaggio stesso vi dirà quale file sta causando il problema. Vi dice anche la linea di codice che contiene il problema.

In questo articolo analizzeremo questo errore e le sue cause. Scopriremo anche due modi in cui risolvere il problema. Mettiamoci al lavoro!

Cosa Causa l’Errore “Cannot Modify Header Information – Headers Already Sent By”

Come abbiamo detto, riceverete questo errore quando uno dei file .php del vostro sito non può essere eseguito. Per le sue funzionalità core, WordPress si basa su file .php, come wp-config.php e functions.php.

Se c’è un problema in uno dei file .php che devono essere caricati dal vostro sito, vedrete un messaggio di errore simile a questo:

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-config.php:#) in /home/public_html/wp-includes/file-example.php on line 33

Per fortuna, l’errore “Cannot modify header information” fornisce molte informazioni che rendono la risoluzione dei problemi relativamente semplice. Il messaggio vi indicherà due file – il primo contiene il problema che impedisce l’esecuzione del secondo.

Alla fine del messaggio di errore, vedrete una sezione che dice “line XX”. Questa mostra la posizione del codice che sta generando il problema.

Di solito, il problema nel codice PHP è abbastanza semplice da risolvere. Tra le cause più frequenti di questo errore ricordiamo:

  • Spazi bianchi prima del segmento <?php del codice o dopo il tag di chiusura ?> tag
  • Un blocco HTML prima della funzione di intestazione di PHP
  • print o echo aggiunti prima della funzione di intestazione PHP
  • Problemi con il codice di un plugin

La correzione di questi errori richiede che abbiate una minima dimestichezza con la modifica del codice PHP. Non avrete bisogno di aggiungere codice da soli.

Tuttavia, potreste aver bisogno di un po’ di aiuto extra per individuare il problema. Questo è vero soprattutto se il problema non è legato agli spazi bianchi o alle dichiarazioni prima della funzione di intestazione di PHP.

Come Risolvere il Problema “Warning: Cannot Modify Header Information – Headers Already Sent By” (2 Metodi)

Ci sono due approcci per risolvere l’errore “Cannot modify header information – headers already sent by”. Il primo metodo non richiede che usciate dalla bacheca di WordPress.

La seconda soluzione prevede il ricorso a FTP/SFTP, nel caso non possiate accedere alla dashboard o utilizzare WordPress.

Iniziamo con il primo metodo.

1. Risolvere l’Errore con l’Editor di Plugin/Temi o Sostituire un Plugin

La prima cosa da fare quando vi imbattete nell’errore “Cannot modify header information – headers already sent by” è aprire il file che sta causando il problema. Individuate la linea indicata dal messaggio.

Per esempio, se vedete un errore che recita quanto segue, significa che dovete guardare all’interno del file functions.php del vostro tema:

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-content/themes/twentytwentyone/functions.php:#) in /home/public_html/wp-includes/file-example.php on line 1

In questa situazione, potete raggiungere l’origine del problema utilizzando l’editor dei temi di WordPress. Per accedervi, andate su Aspetto > Editor del tema.

Una volta dentro, usate il menu a destra per selezionare il file a cui dovete accedere.

File delle funzioni del tema (functions.php).
File delle funzioni del tema (functions.php).

Se guardate attentamente, noterete diversi spazi bianchi prima del tag <?php. Il messaggio di errore stesso punta alla riga numero uno. Pertanto, questo vi dice che la causa del problema sono gli spazi bianchi.

In questo esempio, tutto quello che dovete fare è rimuovere gli spazi bianchi e cliccare su Aggiorna File. Ora provate a ricaricare il vostro sito web e l’errore dovrebbe essere sparito.

Potete seguire la stessa procedura utilizzando l’editor dei plugin di WordPress (Plugin > Editor). Questa soluzione è applicabile se il messaggio di errore punta verso il file di un plugin difettoso.

In alternativa, potreste imbattervi in un errore che indica uno dei file all’interno della directory dei plugin di WordPress. In questa situazione, potete rimuovere e reinstallare quel plugin. Nella maggior parte dei casi, questo risolverà il problema.

Tuttavia, tenete presente che potreste perdere la configurazione di quel plugin, a seconda dello strumento che utilizzate. Potreste aver quindi bisogno di configurare nuovamente il componente aggiuntivo.

2. Modificare il File che Genera il Problema via FTP/SFTP

In alcuni casi, la causa dell’errore “Cannot modify header information – headers already sent by” non si trova in un file a cui puoi accedere utilizzando gli editor di temi o dei plugin di WordPress. Come nel caso in cui avete un sito non basato su WordPress.

In questi casi, la vostra migliore opzione è quella di accedere al file problematico utilizzando FTP/SFTP. Dovrete utilizzare un client FTP o SFTP come la piattaforma FileZilla.

Avrete anche bisogno di avere le credenziali FTP/SFTP del vostro sito web. Nella maggior parte dei casi, dovreste trovarle all’interno del vostro pannello di hosting.

Su Kinsta, potete accedere a MyKinsta, selezionare il vostro sito web nella sezione Siti e cliccare sulla sua scheda Info.

Dettagli SFTP in MyKinsta.
Dettagli SFTP in MyKinsta.

Una volta che avete le credenziali, usate il vostro client FTP o SFTP per connettervi al vostro sito web. Avrete bisogno di localizzare la cartella root del sito. Di solito, il nome dovrebbe essere root, public_html, public, o il nome del vostro sito.

Ecco come appare l’interno della cartella root di WordPress.

Cartella root di WordPress.
Cartella root di WordPress.

Andate avanti e individuate il file che indica l’errore “Cannot modify header information – headers already sent by”. Per esempio, se il problema è in public/wp-config.php, cliccate con il tasto destro sul file e selezionate l’opzione Visualizza/Modifica.

Clic sul file wp.config.
Clic sul file wp.config.

Questa opzione aprirà il file selezionato con il vostro editor di testo predefinito. Una volta aperto il documento, scorrete fino alla riga a cui siete stati indirizzati dal messaggio di errore.

La riga con il messaggio di errore.
La riga con il messaggio di errore.

Se non riuscite a individuare l’errore, potreste aver bisogno di consultare qualcuno che ha esperienza con i file PHP. Tuttavia, se avete a che fare con un problema di spazi bianchi o con una dichiarazione prima dell’intestazione PHP, dovreste essere in grado di risolvere il problema da soli.

Una volta che avete finito, salvate le modifiche al file e chiudete il client FTP/SFTP. Provate a riaccedere al vostro sito web e l’errore dovrebbe essere sparito.

Riepilogo

L’errore “Warning: cannot modify header information – headers already sent by” può sembrare intimidatorio perché emette un lungo messaggio. Tuttavia, questo messaggio di errore è abbastanza dettagliato da permettere di risolvere il problema in modo relativamente semplice. A differenza di altri problemi, questo è abbastanza educato da dirvi quale file lo sta causando e quale riga di codice dovete controllare.

A seconda del file, avete due modi per risolvere il problema:

  1. Correggere l’errore utilizzando l’editor dei temi/plugin o sostituire un plugin.
  2. Modificare il file problematico tramite un client FTP/SFTP.

È semplice individuare la causa dell’errore. Eppure può essere un problema, se non avete familiarità con PHP.

Avete ancora problemi a risolvere questo errore? Condividete la vostra esperienza con la nostra comunità nei commenti qui sotto!

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.