Vrøvl med "Header" kommando.

Tags:    php

Hej

Jeg har sat et parameter i en index.php fil til, at hvis der trykkes på det link der giver "pageid=9", så skal følgende ske:

elseif ($_GET[pageid] == 9) {
header('Location: memberarea/index.php');
}

Desværre kvitterer browseren med denne:

Warning: Cannot modify header information - headers already sent by (output started at /Users/gunnar/Sites/DMFF/index.php:22) in /Users/gunnar/Sites/DMFF/index.php on line 56

What the dælen sker der lige her?

Mvh
Gunnar



Hej

Jeg har sat et parameter i en index.php fil til, at hvis der trykkes på det link der giver "pageid=9", så skal følgende ske:

elseif ($_GET[pageid] == 9) {
header('Location: memberarea/index.php');
}

Desværre kvitterer browseren med denne:

Warning: Cannot modify header information - headers already sent by (output started at /Users/gunnar/Sites/DMFF/index.php:22) in /Users/gunnar/Sites/DMFF/index.php on line 56

What the dælen sker der lige her?


header()-funktionen ændrer eller tilføjer linier til den http-header, som sendes med hver gang en side sendes fra serveren til klienten, og headeren kommer altid først. Apache sender automatisk headerne afsted når der først er skrevet noget "på siden", og hvis man derefter bruger header()-kommandoen, er det for sent.
header() skal derfor skrives før noget andet sendes til klienten (echo "etellerandet"; f.eks.). Dette gælder også eventuelle tomme linier i din fil (uden for php-koden).

Ridefisken



Hvordan laver man så et skift til et "andet site" via en sådan "pageid udvælgelse", hvis ikke en header kommando kan klare det?

(Sagen er den, at netop dette link sender folk ind i en medlemsafdeling på siden...)

Mvh
Gunnar


[Redigeret d. 24/05-05 00:07:26 af Gunnar Kristiansen]



Hej

Jeg har sat et parameter i en index.php fil til, at hvis der trykkes på det link der giver "pageid=9", så skal følgende ske:

elseif ($_GET[pageid] == 9) {
header('Location: memberarea/index.php');
}

Desværre kvitterer browseren med denne:

Warning: Cannot modify header information - headers already sent by (output started at /Users/gunnar/Sites/DMFF/index.php:22) in /Users/gunnar/Sites/DMFF/index.php on line 56

What the dælen sker der lige her?

Mvh
Gunnar



Du kan løse problemet ved at skrive ob_start(); lige efter din <?
og så slutte af med ob_flush(); lige før din ?>


Mvh. Emilbp



t