Selv-omdirigering med tillegg av parametere i PHP
La det på siden index.php overføres
en GET-parameter med navnet arg.
La oss skrive ut dens innhold til skjermen:
<?php
echo $_GET['arg'];
?>
La vår side ikke kunne fungere korrekt uten GET-parameter.
I vårt tilfelle
er dette virkelig slik, fordi hvis parameteren
ikke er sendt, vil tilgang til $_GET['arg']
føre til en feil.
Det kan oppstå et spørsmål om hvorfor i det hele tatt en person vil havne på siden vår uten parameter? Tross alt kan vi overalt på nettstedet vårt plassere lenker med denne parameteren. Imidlertid er dette ingen garanti: brukeren av nettstedet vårt kan for eksempel kopiere lenken et sted fra og miste dermed parameteren. Eller bare ved et uhell slette den, mens han redigerer adresselinjen.
Kort sagt, uansett må koden vår anta en slik situasjon og gjøre noe med den. Hva kan man gjøre?
Man kan sjekke GET-parameteren vår for eksistens og bare skrive den ut hvis den eksisterer:
<?php
if (isset($_GET['arg'])) {
echo $_GET['arg'];
} else {
// reagerer på en eller annen måte, for eksempel med en melding
}
?>
Man kan gjøre det på en mer lur måte:
<?php
if (!isset($_GET['arg'])) {
$_GET['arg'] = 'default'; // standardverdi
}
echo $_GET['arg']; // vil garantert skrive ut noe uten feil
?>
Eller man kan gjøre slik at når man kommer til siden uten parameter, skjer en omdirigering til den samme siden med parameter:
<?php
if (!isset($_GET['arg'])) {
header('Location: ?arg=default');
}
echo $_GET['arg']; // parameteren er garantert til stede
?>
Fortell hva som er forskjellen mellom det andre alternativet og det tredje.
La det på siden page.php kunne sendes
et tall ved hjelp av en GET-parameter med navnet
num. Gjør slik at når man kommer til
siden uten denne parameteren, utføres automatisk
en omdirigering til den samme siden, men med parameteren
num med verdien 1.