Oggi vediamo come risolvere un errore storico di PHP provocato dalla funzione session_start: Cannot send session cache limiter headers already sent.
Descrizione dell’ errore
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at [etc])
L’errore è dovuto al fatto che php pensa che ci sia un’altra sessione aperta dichiarata prima della funzione session_start. Questo è dovuto alla presenza di spazi, testo, caratteri, codice, o elementi in genere prima della funzione session_start.
Risoluzione del problema
Non è una scienza esatta, ma andate per tentativi (come piace a me =D ):
– Non usate l’indent del codice prima del session start, session start deve essere la prima istruzione del codice senza nessun elemento,testo,spazio o codice davanti.
– Non lasciate spazi prima di <?php e dopo il tag di chiusura a inizio e in fondo al documento.
– Cambiate la codifica in ANSI o UTF-8 SENZA BOOM. In certi casi ha risolto. (per farlo potete usare notepad++ che ha già lo strumento di conversione integrato). Anche se è una soluzione che può sembrare strana in alcuni casi (Vedi Stackoverflow) molti utenti hanno risolto senza troppi sforzi.
– Se con il vostro editor sembrano non esserci spazi aprite il file con un semplice blocco note (non il ++) ed eliminate qualsiasi spazio,lettera,o elemento prima di session_start (anche gli indent del codice!).
Ovviamente la premessa più grossa per risolvere il problema è avere codice pulito e tecnicamente corretto (nel caso di un errore “strutturale” o di concetto del codice anche applicando tutte queste soluzioni non risolvereste).
Spero vi sia utile, a presto!
per l’errore “headers already sent ” è sufficiente inserire come prima riga in assoluto
e non ci saranno più problemi di sessione, per ulteriori info c’è sempre php.net!
http://php.net/manual/en/function.ob-start.php
Sisi l’ho scritto anche nell’articolo, tuttavia in certi casi anche le altre possibili soluzioni possono risultare utili 😉
non ho messo il codice tra i code e non l’ha giustamente postato il codice era:
comunque ottimo lavoro questi articoli sono fantastici, ti salvano sempre nelle situazioni disperate =D
Grazie, finalmente ho risolto il problema