Self-redirect met byvoeging van parameters in PHP
Laat op die bladsy index.php 'n
GET-parameter met die naam arg oorgedra word.
Laat ons die inhoud daarvan op die skerm vertoon:
<?php
echo $_GET['arg'];
?>
Laat ons aanneem ons bladsy sonder die GET-parameter
nie korrek kan werk nie. In ons geval
is dit inderdaad so, want as die parameter
nie oorgedra is nie, sal toegang tot $_GET['arg']
lei tot 'n fout.
Daar mag 'n vraag ontstaan, hoekom sou 'n mens ooit op ons bladsy sonder die parameter beland? Ons kan tog oral op ons webwerf skakels plaas met hierdie parameter. Dit is egter nie 'n waarborg nie: die gebruiker van ons webwerf kan byvoorbeeld 'n skakel van iewers kopieer en daardeur die parameter verloor. Of dit per ongeluk verwyder deur die adresbalk te wysig.
In elk geval moet ons kode sulke 'n situasie voorveronderstel en iets daaraan doen. Wat kan gedoen word?
Ons kan ons GET-parameter toets vir bestaan en dit slegs vertoon indien dit bestaan:
<?php
if (isset($_GET['arg'])) {
echo $_GET['arg'];
} else {
// reageer op een of ander manier, byvoorbeeld met 'n boodskap
}
?>
Ons kan slimmer te werk gaan:
<?php
if (!isset($_GET['arg'])) {
$_GET['arg'] = 'default'; // verstekwaarde
}
echo $_GET['arg']; // sal gewaarborg iets sonder fout vertoon
?>
Of ons kan dit so maak dat by toegang tot die bladsy sonder parameter 'n redirect na dieselfde bladsy met die parameter plaasvind:
<?php
if (!isset($_GET['arg'])) {
header('Location: ?arg=default');
}
echo $_GET['arg']; // parameter is gewaarborg
?>
Verduidelik wat die verskil is tussen die tweede opsie en die derde een.
Laat op die bladsy page.php 'n
nommer oorgedra kan word met behulp van 'n GET-parameter met die naam
num. Maak so dat by toegang
sonder hierdie parameter, outomaties 'n
redirect na dieselfde bladsy uitgevoer word, maar met die parameter
num met die waarde 1.