Avatar billede webweaver Praktikant
24. august 2013 - 10:28 Der er 5 kommentarer og
1 løsning

Cannot modify header information

Halløj derude,

Jeg faldt tilfældigvis over flere fejl, som pludseligt er opstået på en hjemmeside jeg har til min virksomhed. Det har virket i flere måneder, men pludselig får jeg en masse advarsler på siden med blandt andet beskeden:

Warning: Cannot modify header information - headers already sent by (output started at /hsphere/local/home/ljelectric/ljelectric.dk/index.php:2) in /hsphere/local/home/ljelectric/ljelectric.dk/includes/cache.php on line 3

Bare for at nævne en af dem...

Jeg kan sgu ikke forstå hvorfor. Jeg har selv programmeret det tidligere og som sagt har det kørt uden problemer. Jeg har kigget på alle de typiske problematikker i forhold til denne advarsel, men uden held.

Der er ikke nogen blanke linier eller mellemrum tilsyneladende omkring eller i selve linie 2. (eller de andre steder, hvor denne fejl opstår). Alle filerne er gemt i UTF-8 uden BOM, så problemet bør heller ikke ligge her.

Jeg har forsøgt at smide tingene direke over i filen i stedet for at include det, forsøgt at smide det på én lang linie i stedet for flere, men igen uden held.

Problemet er tilsyneladende opstået i forbindelse med en opgradering af PHP på serverne. Så der er måske lavet om på nogle indstillinger. Men synes ikke lige at kunne finde den specifikke løsning på det. Opgraderingen har også givet anledning til andre fejl, såsom at date(); ikke længere fungerer, uden at man angiver en tidszone i f. eks. php.ini. Førhen har det været muligt at bruge serverens indstilling...

Jeg håber, der er nogen, som har nogle gode ideer omkring header-problemet, for jeg har umiddelbart ikke lige flere p.t?

Hjemmesiden er som sagt for en virksomhed, så jeg vil meget gerne have problemet løst ret hurtigt, da det ikke pynter meget med disse fejl. Jeg kan selvfølgelig slå dem fra midlertidigt :-)

På forhånd tak.
Avatar billede Vixo Novice
24. august 2013 - 11:59 #1
prøv at skriv: ob_start(); øverst i filen.
Virkede for mig engang, da jeg fik samme problem :-)
Avatar billede michael_stim Ekspert
24. august 2013 - 13:09 #2
Problemet er formodentlig, som du siger, en opdatering. Pga den opdatering bliver der nok smidt en advarsel, hvilket indebær at der bliver skrevet til skærmen før din header.

ob_start er ikke pænt og skal kun bruges som nødløsning. Det er bedre at finde ud af hvor advarselen bliver smidt.
Avatar billede webweaver Praktikant
24. august 2013 - 22:19 #3
Jeg vil helst gerne undgå ob_start/flush... Det anser jeg ikke som en ideél løsning på sigt. Hvad der giver advarslen præcis er dog et mysterium for mig p.t. Så det er lidt svært at komme videre herfra.
Avatar billede michael_stim Ekspert
24. august 2013 - 22:36 #4
Fjern headeren på den side du får fejlen, så burde du få en advarsel eller fejl. Formodentlig en forældet funktion.
Avatar billede webweaver Praktikant
26. august 2013 - 18:13 #5
Hvis jeg fjerner headeren, så forsvinder advarslen også bare.
Jeg har dog fået løst problemet nu. Af en eller anden grund, så skal jeg smide tingene ind før DOCTYPE deklarationen nu. Hvis jeg gør det efter, får jeg fejlen. Det har ikke været et problem tidligere, så længe headeren ikke bliver kaldt før efter det indsatte stykke. Det er åbenbart en ændring i PHP i forbindelse med en opdatering til nyere version.

Det drejer sig i øvrigt om pragma, cache-control m.v. som gav fejlen, men det er altså ikke fordi de er forældet.

Som tak for jeres tid, så kan I smide svar, hvis I ønsker points.
Avatar billede webweaver Praktikant
30. august 2013 - 17:05 #6
Jeg har ikke hørt fra jer, så formoder, at jeg bare kan lukke tråden selv så.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester