Gå til innhold

IF, SWITCH, $_GET problemer (sjekk kode)


Anbefalte innlegg

Emnetittel sier egentlig alt, jeg har en kode her jeg ikke får til å fungere dere ser hva jeg vil får til, men switch går bare til default, uansett hva jeg gjør, og tar jeg vekk IF så får jeg "error on line..." derimot fungerer da switch. Jeg tror det er IF-en jeg gjør noe galt med men jeg ser det ikke. kan noen hjelpe?

 

takk!

<html>
<head>
</head>
<body>
<div>
<div>
<a href="index.php">HOME</a>
<a href="index.php?id=Gourd">GOURD</a>
<a href="index.php?id=Artichoke">ARTICHOKE</a>
<a href="index.php?id=Cassava">CASSAVA</a>
<a href="index.php?id=Potato">POTATO</a>
</div>
<div>
<?php		
if($_GET["id"] = NULL)
{
	die();
}
else
{
	$favoriteVege = $_GET["id"];
}

switch ($favoriteVege)
{
case "Gourd":
	echo "Your favorite vegetable has around 40 kilojoules of energy!";
	break;
case "Artichoke":
	echo "One of those has around 105 kilojoules of energy!";
	break;
case "Cassava":
	echo "One of those has around 550 kilojoules of energy";
	break;
case "Potato":
	echo "That would be around 460 kilojoules of energy";
	break;
default:
	echo "Sorry, don't know how much energy that vegetable contains.";
	break;
}
?>
</div>
</div>
</body>
</html>

Lenke til kommentar
Videoannonse
Annonse

Et enkelt erlikhetstegn betyr verditilegnelse. Du setter $_GET['id'] til å være null hver gang og tilegnelsen returnerer verdien tilegnet, dvs. at koden hopper til else-blokken, hvor $favoriteVege blir tilegnet null. Derav alltid default-oppførsel.

Lenke til kommentar

Det skader heller ikke å rydde opp litt i koden din. Det å bruke die() alias for exit() skal man egntlig ikke gjøre. Ta heller å design koden så output blir komplett til tross for at eksekveringen ikke gikk som planlagt.

 

Forøvrig, om man skal se om en variabel er NULL, så er det normal praksis å sjekke slik if(!$var) (eventuelt kan man bruke ternary-operatøren istedenfor if ...).

Tilsvarende vil if($var) evaluere til true dersom variablen inneholder noe, og false dersom den ikke gjør det.

 

 	<?php		
	if(!$_GET["id"])
{
print("The ID was not set. Go back and try again.");
}
else
{
  	switch ($_GET["id"])
{
case "Gourd":
	echo "Your favorite vegetable has around 40 kilojoules of energy!";
	break;
case "Artichoke":
	echo "One of those has around 105 kilojoules of energy!";
	break;
case "Cassava":
	echo "One of those has around 550 kilojoules of energy";
	break;
case "Potato":
	echo "That would be around 460 kilojoules of energy";
	break;
default:
	echo "Sorry, don't know how much energy that vegetable contains.";
	break;
}
}
	?>

 

EDIT: @TheClown

Thank you, Cpt. Obvious. Les Jonas' innlegg. Forøvrig, hvorfor null med små bokstaver? Ser mindre ryddig ut :p

Endret av ze5400
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...