webForumDet fria alternativet

Cannot modify header information

PHP

9 svar · 836 visningar · startad av kittlos

Medlem sedan sep. 2002205 inlägg
Frågan#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?

Medlem sedan mars 20025 907 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!

Medlem sedan sep. 2002205 inlägg
#3

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

Medlem sedan mars 20025 907 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.

Medlem sedan sep. 2002205 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...

Medlem sedan mars 20025 907 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!

Medlem 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

Medlem sedan feb. 20002 300 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>.

Medlem 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();
}
Medlem sedan dec. 19996 721 inlägg
#10

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

254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)