- Home
- Categorie
- Coding e Sistemistica
- PHP
- include/ require
-
include/ require
Ciao a tutti,
vengo al dunque:Ho una pagina con del codice tipo
[php]if (a == b) {header ('location:xxx.xx');};[/php]incluso nella pagina "madre" tramite require (include non cambia niente).
Ora non essendo "a" uguale a "b" non succede nulla però se dentro il codice della pagina madre metto un altra volta il comando header si presenta l'errore
"Warning: Cannot modify header information - headers already sent by (output started[...]"Perchè, visto che l'header non l'ho elaborato? Inserendo il codice direttamente nella pagina "madre" non ci sono problemi.
Qualcuno conoscce il perchè?
Ciao
Valentino
-
Ciao Lumpi,
non puoi mandare un header dopo aver inviato un output, o metti il controllo prima di qualsiasi output, oppure attivi il buffering dell'output per evitare questo genere di problemi.
-
Grazie Thedarkita,
mi sono letto l'output buffering e siamo d'accordo ma la domanda sorge spontanea.... dove invio l'output?Lo stesso codice copiato nella stessa posizione al posto dell'include non da alcun problema.....
Scusa se continuo ma mi piacerebbe approfondire
Ciao
-
Prima dell'header stai inviando un output per quello hai l'errore.
-
[php]
session_start();
if ($_SESSION['liv'] == ''){header('location:index.html'); exit;}
elseif ($_SESSION['liv'] > $liv_pag){header('location:oops.php'); exit;};
[/php]è tutto qui l'arcano mistero, togliendolo dall'file "incluso" e mettendolo nello script non ci sono piu problemi.
Mà.... grazie comunque
Vale
-
Buongiorno,
questa notte mi è apparso il signor php in sogno e ho risoltoIl problema era dato da uno spazio vuoto dopo la chiusura del php nel file "incluso", evidentemente il server lo considerava un output.... provare per credere...
Magari può servire a qualcuno
Ciao