Önátirányítás paraméterek hozzáadásával PHP-ben
Tegyük fel, hogy a index.php oldalon
átadunk egy GET paramétert, melynek neve arg.
Jelenítsük meg a tartalmát a képernyőn:
<?php
echo $_GET['arg'];
?>
Tegyük fel, hogy oldalunk nem működhet helyesen
a GET paraméter nélkül. Esetünkben
ez valóban így van, mivel, ha a paraméter
nincs megadva, akkor a $_GET['arg']
elérése hibához vezet.
Felmerülhet a kérdés, hogy egyáltalán hogyan kerülhet valaki a oldalunkra paraméter nélkül? Hiszen webhelyünkön mindenhol elhelyezhetünk linkeket ezzel a paraméterrel. Ez azonban nem garancia: webhelyünk felhasználója például másolhatja a linket valahonnan, és eközben elveszítheti a paramétert. Vagy egyszerűen véletlenül törölheti azt, miközben szerkeszti a címsort.
Mindenesetre kódunknak fel kell készülnie egy ilyen helyzetre, és tennie kell valamit. Mit tehetünk hát?
Ellenőrizhetjük, hogy a GET paraméterünk létezik-e, és csak akkor jeleníthetjük meg, ha létezik:
<?php
if (isset($_GET['arg'])) {
echo $_GET['arg'];
} else {
// valahogy reagálunk, például üzenettel
}
?>
Legyélhetünk rafináltabbak is:
<?php
if (!isset($_GET['arg'])) {
$_GET['arg'] = 'default'; // alapértelmezett érték
}
echo $_GET['arg']; // garantáltan kiír valamit hiba nélkül
?>
Vagy megtehetjük, hogy amikor paraméter nélkül érkeznek az oldalra, akkor történjen átirányítás ugyanerre az oldalra a paraméterrel:
<?php
if (!isset($_GET['arg'])) {
header('Location: ?arg=default');
}
echo $_GET['arg']; // a paraméter garantáltan létezik
?>
Mesélj el, mi a különbség a második és a harmadik megoldás között.
Tegyük fel, hogy a page.php oldalon
átadhatunk egy számot a num nevű GET paraméterrel.
Állítsd be úgy, hogy amikor a paraméter nélkül
érkeznek az oldalra, automatikusan végrehajtódjon
egy átirányítás ugyanerre az oldalra, de a num
paraméter 1 értékkel.