Header funkar inte.

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1

Jag har precis börjat lära mig PHP och börjat med formulär. Jag får allt att funka utom heder. mitt formulär har till uppgift att skicka olika svar beroende på vad man väljer i rullgardinen. Och om man väljer --välj här-- och skickar ska man komma tillbaka till formulärsidan. Jag använder programmet xampp som kör apche och php 4.4.8.

så här ser koden ut

<html>
<head> 
<title>Vilken_Arstid</title>
</head>
<body>
<form action="svar.php" method="post">
<h1>Viken är din fvorit årstid"</h1><br>
Välj din årstid här:<br>
<select name="arstid">
<option selected>--välj här--</option>
<option>Vår</option>
<option>Sommar</option>
<option>höst</option>
<option>vinter</option>
</select><br>
<input type="submit" value="skicka">
</form>
</body>
</html>

och

<html>
<head>
<title>svar</title>
</head>
<body>
<?php 
$s = "Sommar";
$v = "vinter" ;
$va = "--välj här--" ;

if (isset($_POST['arstid']))
{
	if ($_POST['arstid'] == $s)
	{
	echo "Du har valt en varm årstid" ;
	}
	elseif ($_POST['arstid'] == $v)
	{
	echo "Du har valt en kall årstid" ;
	}
	elseif ($_POST['arstid'] == $va)
	{
	Header("Location: fraga.php");
	die();
	}
	else 
	{
		echo "du har valt en ljumen årstid" ;
	}
}
?>
</body>
</html> 	

och felmedelandet säger

Warning: Cannot modify header information - headers already sent by (output started at /Applications/xampp/xamppfiles/htdocs/svar.php:6) in /Applications/xampp/xamppfiles/htdocs/svar.php on line 23

allt det andra funkar som det ska.

  • Medlem
  • Göteborg
  • 2008-06-29 19:23

Utan att egentligen läsa vad ditt skript gör:
vill du ändra någon "header", så gör det innan sidan börjar skickas ut, dvs i toppen före <html>.

Precis som pichia sa så ska kan inte header() exekveras efter output till klienten vare sig det är HTML eller från en echo. Anledningen till detta är för att då, i och med en output, så skickas HTTP headern till webbläsaren. Och header() funktionen är en metod för att förändra hur denna HTTP header ska vara utformad. Så om en HTTP header redan har skickats och du försöker att ändra den efter det så får du ett error.

Jag fick det att funka

Tack för hjälpen jag fick det att funka.

1
Bevaka tråden