Avatar billede Slettet bruger
18. september 2010 - 09:19 Der er 6 kommentarer og
1 løsning

Cannot modify header (2)

Af en eller anden årsag er problemet vendt tilbage.

Jeg modtager denne fejl:
"Warning: Cannot modify header information - headers already sent by (output started at /../php/start.php:16) in /../godkend.php on line 20"


Linje 16 i start.php:
<title><? echo $page_title; ?></title>

Linje 20 i godkend.php er 3 linje:
if ($mode == "delete"){
mysql_query("DELETE FROM kogebog_opskrifter WHERE opskriftid='$id'");
header("Location: $PHP_SELF");
}

Jeg har prøvet at ændre sætningen fra:
mysql_query("DELETE FROM kogebog_opskrifter WHERE opskriftid='$id'");

til:
mysql_query("DELETE FROM kogebog_opskrifter WHERE opskriftid='$id'")or die(mysql_error());

uden held, jeg får ingen tilbagemelding omkring fejlen?!?

Hvad gør jeg forkert?
Avatar billede showsource Seniormester
18. september 2010 - 10:28 #1
I godkend.php includer du vel start.php ?
Avatar billede Slettet bruger
18. september 2010 - 10:36 #2
Ja, det gør jeg
Avatar billede showsource Seniormester
18. september 2010 - 10:41 #3
Og du includer FØR du laver din
header("Location: $PHP_SELF");

(som iøvrigt bør være header("Location:http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]); )

Det gi'r jo den fejlmeddelse.
Og ikke din query
Avatar billede Slettet bruger
18. september 2010 - 19:28 #4
Hele den her sætning
header("Location:http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]); )

i stedet for
header("Location: $PHP_SELF");
Avatar billede showsource Seniormester
18. september 2010 - 19:39 #5
header("Location:http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]);
skal det selvf. være.
Var fordi jeg ville putte en kommentar ind med parentes omkring.

http://dk.php.net/manual/en/function.header.php
Tjek NOTE 5
Avatar billede jantzen88 Nybegynder
22. september 2010 - 21:44 #6
Dit problem er faktisk meget simpelt... header skal ligge før output, så når du har en <title> med noget echo er det noget output. Din header skal såden set være før noget andet, som du kan læse i warning "Cannot modify header information - headers already sent ..." dvs. At din browser allerede har modtaget noget header information, derfor skal du ligge din header op over din title.

kan så læse at i din "godkend.php" har du en include("start.php");
og vil nok tror at rækkefølgen er som skrevet neden under.

Hvis du køre din "start.php" igennem ser du tydeligt din title som er output og det så derfor du får din header fejl.

Hvis du har noget som er nødt til at blive kørt før din header så må du hente det ud af "start.php" og skrive det ind i godkend.php.

Så meget kort sagt, header før output. Det er det samme #3 skriver, og fejlen er ikke din query. Håber det lykkes for dig

<?php
include("start.php");
header("Location:http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]);
?>
Avatar billede Slettet bruger
02. november 2010 - 18:31 #7
Har flyttet:

if ($mode == "delete"){
mysql_query("DELETE FROM kogebog_opskrifter WHERE opskriftid='$id'");
header("Location: $PHP_SELF");
}

og den anden over i start.php og ind før </head>
Det synes at virke.

Tak for hjælpen :)

Showsource, vil du angive svar for point?

Og undskyld den lange ventetid.
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