Lencongan Sendiri dengan Penambahan Parameter dalam PHP
Katakan pada halaman index.php dihantar
parameter GET dengan nama arg.
Mari kita paparkan kandungannya pada skrin:
<?php
echo $_GET['arg'];
?>
Katakan halaman kita tanpa parameter GET
tidak boleh berfungsi dengan betul. Dalam kes kita,
ini memang benar, kerana, jika parameter
tidak dihantar, maka akses kepada $_GET['arg']
akan menyebabkan ralat.
Mungkin timbul persoalan, mengapa secara umumnya pengguna boleh masuk ke halaman kita tanpa parameter? Lagipun, kita boleh meletakkan pautan dengan parameter ini di mana-mana sahaja di laman web kita. Walau bagaimanapun, ini bukan jaminan: pengguna laman web kita mungkin, sebagai contoh, menyalin pautan dari suatu tempat dan kehilangan parameter tersebut. Atau secara tidak sengaja memadamnya, semasa mengedit bar alamat.
Secara umum, dalam mana-mana keadaan, kod kita harus menganggap keadaan sedemikian dan melakukan sesuatu mengenainya. Apa yang boleh dilakukan?
Kita boleh menyemak kewujudan parameter GET kita dan memaparkannya, hanya jika ia wujud:
<?php
if (isset($_GET['arg'])) {
echo $_GET['arg'];
} else {
// bertindak balas dengan cara tertentu, contohnya, dengan mesej
}
?>
Kita boleh melakukan dengan cara yang lebih bijak:
<?php
if (!isset($_GET['arg'])) {
$_GET['arg'] = 'default'; // nilai lalai
}
echo $_GET['arg']; // dijamin akan memaparkan sesuatu tanpa ralat
?>
Atau kita boleh membuat supaya apabila masuk ke halaman tanpa parameter, berlaku lencongan ke halaman yang sama dengan parameter:
<?php
if (!isset($_GET['arg'])) {
header('Location: ?arg=default');
}
echo $_GET['arg']; // parameter dijamin wujud
?>
Terangkan, apakah perbezaan antara pilihan kedua dengan pilihan ketiga.
Katakan pada halaman page.php boleh dihantar
nombor menggunakan parameter GET dengan nama
num. Buat supaya apabila masuk
tanpa parameter ini, secara automatik dilakukan
lencongan ke halaman yang sama, tetapi dengan parameter
num dengan nilai 1.