Når man arbejder med variabler (se Kapitel 4 og Kapitel 5) er man nogle gange nødt til at kunne kontrollere om variablen har en værdi eller om den er tom. Når indholdet af variablen er kontrolleret kan man så beslutte, hvad der skal ske. I Kapitel 5 skulle du oprette 2 sider: En hvor man skulle indtaste et navn og den næste, hvor ens navn ville blive vist på skærmen.
Men prøv nu at gå ind direkte på siden vis.php og se, hvad der sker.
Alt efter hvordan PHP er blevet installeret får du nu vist en fejl (fordi variablen $navn ikke eksisterer) eller du får bare vist sætningen uden det forventede navn. Med lidt kontrol kan dette undgås.
Der er flere forskellige måde at lave kontrol på, men en af de mest grundlæggende er brugen af funktionen if (oversat til dansk: hvis). (Helt korrekt er if ikke en funktion men en sætnings- eller betingelses-konstuktion).
Den simple måde at bruge if på er som følger:
<?php
if (et udtryk)
kommando
?>
Den måde if oftest bliver brugt på, er når man har brug for at udfører flere kommandoer efter hinanden.
<?php
if (et udtryk)
{
kommando 1;
kommando 2;
}
?>
Her bliver man nødt til at "omslutte" alle kommandoerne med krøllede parenteser: { og }
Sætningen (et udtryk) står for en betingelse som enten kan være sand eller falsk. Hvis betingelsen er sand, så bliver kommandoerne udført ellers ikke.
Nok snak. Nu skal du prøve det i praksis.
Du skal bruge de to sider du oprettede i Kapitel 5.
Du skal nu oprette en kontrol med om brugeren har indtastet noget i feltet $navn. Hvis ikke brugeren har det, skal brugeren automatisk stilles om til startsiden (index.php), med besked om at indtaste navn.
<?
if(empty($_GET['navn']))
{
header("Location: index.php");
exit;
}
?>
OBS: Der må ikke være tomme linier over koden <?!!!!!
Forklaring:Nu kunne det jo godt være, at brugeren ikke lige forstår, hvorfor han (eller hun) er blevet sendt tilbage til startsiden. Derfor skal du lige rette dette eksempel lidt til: Du skal sende en besked med tilbage til startsiden.
<?
if(empty($_GET['navn']))
{
header("Location: index.php?advarsel=Skriv dit navn herunder");
exit;
}
?>
Altså et spørgsmålstegn efterfulgt af: advarsel=Skriv dit navn herunder.
<?
if(!empty($_GET['advarsel']))
{
$advarsel = $_GET['advarsel'];
echo "<p><b> $advarsel </b></p>";
}
?>
Læg mærke til udråbstegnet ( ! ) foran funktionen empty(). Dette betyder ikke. Oversat til dansk: