24. august 2013 - 10:28Der 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 :-)
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.
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.
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.
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.
Jeg har ikke hørt fra jer, så formoder, at jeg bare kan lukke tråden selv så.
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.