Risolvere problemi con la funzione header di php
Posted by k8 - Articolo di k8. August 4, 2008, 8:43 am

In questo piccolo howto, vi mostrerò come aggirare il solito problema della funzione Header di PHP:

			
Warning: headers already sent by (output started ...

Per risolvere questo piccolo, ma fastidioso warning è necessario utilizzare due funzioni che php ci fornisce:

Piccolo esempio non funzionante:

		
<?php
/*
* Questo esempio non funzionerà, ma restituirà un warning, e quindi il redirect non verrà effettuato.
*/
echo 'Big-Bug - Community Programmazione & Linux';
header("Location: http://www.big-bug.net");
?>

ed ecco invece un esempio funzionante

:
		
<?php
ob_start();
/*
* Questo esempio funzionerà.
*/
echo 'Big-Bug - Community Programmazione & Linux';
header("Location: http://www.big-bug.net");
ob_end_flush();
?>

Nel primo esempio la funzione header() non funziona poichè prima di averla richiamata ho un output restituito dal costrutto echo.
Mentre nel secondo esempio, pur avendo un output,la pagina funziona correttamente.
Questo perchè?
Come vedete,nell'esempio funzionante ho inizializzato la funzione ob_start() ad inizio pagina, e dopo la chiamata alla funzione
header(), ho utilizzato ob_end_flush() risolvendo il problema, ed avendo uno script funzionante al 100%.


Condividi
Stats
Voti 0
Voto medio 0
Visite 139
Visite uniche 125
Num.Download 0
DownloadNon disponibile.
Spazio Visitatori
Prima di inviare il tuo commento assicurati che:
  • sia in tema con l'articolo e contribuisca alla discussione in corso
  • non abbia contenuti offensivi nei confronti di chicchessia
  • non abbia contenuti che violini le leggi italiane
  • non contenga indirizzi e-mail








Vota Pessimo 1 / 5 Migliorabile 2 / 5 Buono 3 / 5 Interessante 4 / 5 Speciale  5 / 5
Non ci sono commenti.

Advertisement

| Valid CSS | Valid HTML 4.01 | I contenuti di questo sito sono rilasciati sotto Licenza Creative Commons |