Samopreusmeritev z dodajanjem parametrov v PHP
Naj na strani index.php se prenese
GET parameter z imenom arg.
Izpišimo njegovo vsebino na zaslon:
<?php
echo $_GET['arg'];
?>
Naj naša stran brez GET parametra
ne more delovati pravilno. V našem primeru
je to res tako, saj bo, če parameter
ni podan, dostop do $_GET['arg']
povzročil napako.
Lahko se pojavi vprašanje, zakaj sploh človek pride na našo stran brez parametra? Navsezadnje lahko povsod na našem spletnem mestu postavimo povezave s tem parametrom. Vendar to ni garancija: uporabnik našega spletnega mesta lahko na primer kopira od kod drugod povezavo in pri tem izgubi parameter. Ali pa ga samo po naključju izbriše, ko ureja naslovno vrstico.
Vsekakor mora naša koda predvideti takšno situacijo in nekaj storiti z njo. Kaj pa lahko storimo?
Lahko preverimo obstoj našega GET parametra in ga izpišemo le, če obstaja:
<?php
if (isset($_GET['arg'])) {
echo $_GET['arg'];
} else {
// nekako reagirajmo, na primer s sporočilom
}
?>
Lahko pa ravnamo bolj zvitO:
<?php
if (!isset($_GET['arg'])) {
$_GET['arg'] = 'default'; // privzeta vrednost
}
echo $_GET['arg']; // zagotovo nekaj izpiše brez napake
?>
Lahko pa naredimo tako, da ob dostopu na stran brez parametra pride do preusmeritve na to isto stran s parametrom:
<?php
if (!isset($_GET['arg'])) {
header('Location: ?arg=default');
}
echo $_GET['arg']; // parameter je zagotovo prisoten
?>
Povejte, v čem je razlika med drugo možnostjo in tretjo.
Naj na strani page.php lahko podamo
število s pomočjo GET parametra z imenom
num. Naredite tako, da ob dostopu
brez tega parametra, samodejno pride do
preusmeritve na to isto stran, vendar s parametrom
num z vrednostjo 1.