/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hjælp - header already sent by
Fra : Torben


Dato : 06-06-02 11:58

Hej NG

Jeg har fået et lille - stort - problem, lige pluslig for jeg denne fejl

Warning: Cannot add header information - headers already sent by (output
started Filnavn

Jeg har prøvet at slette filen og erstatte den med en anden men uden held.


Hvad kan fejlen være ??

Venlig hilsen
.../ Torben



 
 
Sparre (06-06-2002)
Kommentar
Fra : Sparre


Dato : 06-06-02 12:08

Ved ikke så meget om det, men du skal huske at headers SKAL sendes før
<head> og <body> tags, måske er det det :)



Mads A. Jensen (06-06-2002)
Kommentar
Fra : Mads A. Jensen


Dato : 06-06-02 12:13

Hej

> Hvad kan fejlen være ??

At du printer noget før at du udskriver dine headers. Kunne tænke mig at du
havde en fil, der lignede dette:

-
<!-- der må heller ikke være linieskift før headers
<?php
// måske nogle koder
header("....");
// resten af dine koder
?>
-

Håber, at det ikke er alt for meget sort snak!

/Mads
--

--
Mads Jensen
http://ddfr.dk - Dansk Donaldist Forening
http://www.disney-comics.dk - Free Disney comics on the web!
info@disney-comics.dk



Kristian Risager Lar~ (06-06-2002)
Kommentar
Fra : Kristian Risager Lar~


Dato : 06-06-02 12:17

Jeg har skrevet lidt om nogle måder at undgå det på på
http://kezze.dk/artikler.php.php (desværre offline i skrivende stund):

Problemer med headers:
Mange har spurgt mig hvad de skal gøre når de får denne fejl:

Warning: Cannot add header information - headers already sent by (output started at
fil.php:7) in fil.php on line 9
De har typisk lavet et dokument som dette:

<?php
printf("%s",pack("c*",(floor(30031/366)),sqrt(7056),bindec(1000110),octdec(115)));
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
?>

Der er to løsninger: Den pæne og den beskidte.


Den pæne løsning:
Sørg for at din header()-funktion kommer før alt output. Sørg generelt for at gøre
det på den måde!

<?php
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
printf("%s",pack("c*",(floor(30031/366)),sqrt(7056),bindec(1000110),octdec(115)));
?>



Den beskidte løsning:
Hvis du er i dårligt humør eller bare er en slamkoder kan du dog kigge lidt på
"output control"-funktionerne i PHP:
Det, som gør denne gruppe funktioner brugbare er, at de fx. kan få outputtet gemt i
serverens hukommelse og først blive sendt ud til klienten når siden er genereret helt
færdig.
Jeg vil dog advare mod overdrevent brug af disse funktioner, da de gør siderne ret
langsomme og det absolut ikke kan kategoriseres som pæn kode.

<?php
ob_start();
printf("%s",pack("c*",(floor(30031/366)),sqrt(7056),bindec(1000110),octdec(115)));
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
ob_end_flush();
?>
(denne metode er ikke værd at bruge tid på)

--
Mvh,
Kristian Risager Larsen - http://kezze.dk - mailto:kezze@kezze.dk
"I have taken more good from alcohol than alcohol has taken from me." - W. Churchill


Torben (06-06-2002)
Kommentar
Fra : Torben


Dato : 06-06-02 13:18

Hej Igen

Jeg er sku godt nok på den
Problemet med siden er lidt underlig, for ALT har virket, med så ikke mere.
Problemet opstå ikke med Opera kun IE & Netscape, og hvorfor så det ?
Det er som om der sidder en fil et sted, den ikke kan blive færdig med.
Når der skal oprettes nye data i MySQL basen bilver alle input ikke til
noget, kun tomme record.

Hvad fa.... skal jeg stille op ?

Venlig hilsen
--/ Torben



Kristian Risager Lar~ (06-06-2002)
Kommentar
Fra : Kristian Risager Lar~


Dato : 06-06-02 14:15

> Når der skal oprettes nye data i MySQL basen bilver alle input ikke til
> noget, kun tomme record.

Aah, jeg tror jeg har stillet diagnosen ;)
Prøv at se om du kører med PHP version 4.1.0 eller nyere og har slået
register_globals off. Hvis du gør dette, så læs http://www.php.net/release_4_1_0.php
.. Gør også dette hvis du ikke har opgraderet endnu, det er nyttigt :)
I praksis vil det sige at du skal udskifte $flaf med $_GET['flaf'] eller
$_POST['flaf'] alt afhængigt af din http-method. Når du benytter dig af formularer
vil jeg foreslå $_POST[name] .

--
Mvh,
Kristian Risager Larsen - http://kezze.dk - mailto:kezze@kezze.dk
"I have taken more good from alcohol than alcohol has taken from me." - W. Churchill


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste