webForumDet fria alternativet

Cannot modify header information

9 svar · 834 visningar · startad av kittlos

kittlosMedlem sedan sep. 2002204 inlägg
#1

Skumt. Trots att min kod börjar med header:

<? header ("Location: index.php?article_id=$article_id");

Så får jag felmeddelandet:

Warning: Cannot modify header information - headers already sent by 
(output started at /home/sida.php:2) in /home/sida.php on line 2

Line 2 är koden ovan.

Någon som vet varför?

PeeerMedlem sedan mars 20025 362 inlägg
#2

kittlos skrev:

Skumt. Trots att min kod börjar med header:

#####

Line 2 är koden ovan.

Hur kan kodraden ligga på rad 2 om det är det första som finns på sidan? Du får inte ha någonting (ingen html, inga blanksteg, ingenting!) som skrivs till webbläsaren ovanför raden med header-koden. Dvs, plocka bort rad 1!

kittlosMedlem sedan sep. 2002204 inlägg
#3

ok, det funkade. Men jag tycker att det är konstigt...

PeeerMedlem sedan mars 20025 362 inlägg
#4

kittlos skrev:

Men jag tycker att det är konstigt...

Vad är det som är konstigt? headers måste alltid skickas först av resultatet till klienten. Har du redan börjat skicka annan data så kan du inte skicka mer headers utan du får istället ett felmeddelande.

kittlosMedlem sedan sep. 2002204 inlägg
#5

Men jag hade inte skickat någon annan data. Detta var det första som stod. Det var bara det att koden började på rad 2 istället för rad 1, som i sin tur var helt tom. Inte ens ett mellanslag...

PeeerMedlem sedan mars 20025 362 inlägg
#6

kittlos skrev:

Men jag hade inte skickat någon annan data. Detta var det första som stod. Det var bara det att koden började på rad 2 istället för rad 1, som i sin tur var helt tom. Inte ens ett mellanslag...

Rad 1 innehöll ju i alla fall minst en radbrytning. Det är också data!

ir0nMedlem sedan mars 200714 inlägg
#7

samma fel

ja får exakt samma fel...borde man inte kunna skriva såhär:

<html>	
<head>
<?php
function betalning($error){	
	if($error == 1){
		header ("Location: betalning.php?error=".$error);
		exit();
	}
	else{
		header ("Location: betalning.php");
		exit();
	}
}
?>

tacksam för svar!

//Andreas

PhorpherMedlem sedan feb. 20002 059 inlägg
#8

ir0n skrev:

ja får exakt samma fel...borde man inte kunna skriva såhär:

<html>	
<head>
<?php
function betalning($error){	
	if($error == 1){
		header ("Location: betalning.php?error=".$error);
		exit();
	}
	else{
		header ("Location: betalning.php");
		exit();
	}
}
?>

tacksam för svar!

//Andreas

Nej. Ta bort <html> och <head>.

ir0nMedlem sedan mars 200714 inlägg
#9

Phorpher skrev:

Nej. Ta bort <html> och <head>.

får samma fel nu med. har ändrat till:

<?php
//SKICKAR ANVÄNDAREN TILL BETALNINGSSIDAN
function betalning(){	
	header ("Location: betalning.php");
	exit();
}
emissionMedlem sedan dec. 19996 095 inlägg
#10

Det är en function, alltså måste anropet komma till betalning() innan något annat har fått hamna på sidan.

124 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
121 ms — hämta tråd, inlägg och bilagor (db)