04. januar 2004 - 02:43Der er
23 kommentarer og 1 løsning
headers already sent - Please help
Hejsa
Jeg er ved at sætte et photoalbum op til at køre så jeg kan bruge det, men får nogle fejl, håber nogle kan hjælpe, fejlene er :
Warning: Cannot add header information - headers already sent by (output started at /home/michael/public_html/photo/yappa-ng/config.inc.php:623) in /home/michael/public_html/photo/yappa-ng/languages/language_selection.inc.php on line 319
Warning: Cannot add header information - headers already sent by (output started at /home/michael/public_html/photo/yappa-ng/config.inc.php:623) in /home/michael/public_html/photo/yappa-ng/themes/themes_support.inc.php on line 76
Har fået af vide at det måske er http headers , eller noget sessions opsætning i php/apache som ikke spiller max, eller hvad ??
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
(der er også andre situationer, hvor man kan få denne fejl, end bare ved sessions - men i 95% af alle tilfælde er dette output før session_start() som er problemet)
Hmm output før session_start(), i /home/michael/public_html/photo/yappa-ng/config.inc.php:623 er det i allersidste linie som lyder -> require("config_private.inc.php");
Header fejlen skyldes opbygningen af HTTP-protokollen... Output Buffering (OB) er overkill på LANGT de fleste script (men mindre man kombinere det med custum-error-handling via output-callback funktioner)
Protokollen lydder som sådan --- headere
indhold ---
dvs først ALLE headere, dernæste ALT indhold, ikke blandet.... det er derfor du får fejl: der bliver først sendt noget tekst til browseren, og SÅ kaldt header() / session_start() / cookie() (det er de tre funktioner som sender headere)... det generer en "output already startet" warning...
det der skal gøres før det virker igen er at omrokkere i scriptet så ALT der kræver headers kommer øverst i sciptet (før ALT output), og så vil dette fjerne fejlen...
Det OB gør er af "fange" alt tekst der bliver sendt ud til browseren og smide dette ind i en variabel - når der så kommer en header er der intet sendt, fordi det er blevet opfanget af OB og puttet i en variabel, så afviklingen af scriptet sluttet udskrives alt output så, og på den måde er HTTP-protokollen opfyldt !
Det siger sig selv at det er overkill at bruge dette da serveren jo skal tænke væsenligt mere over hver eneste side, når du kunne rette det ved en simpel omrokkering af scriptet !
Hmm jeg har rodet rundt med det i noget tid nu, men har ik retti fået det til at virke.
/Sweet1
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.