Redirect Otomatis dengan Menambahkan Parameter di PHP
Misalkan pada halaman index.php diteruskan
parameter GET dengan nama arg.
Tampilkan isinya di layar:
<?php
echo $_GET['arg'];
?>
Misalkan halaman kita tanpa parameter GET
tidak dapat bekerja dengan benar. Dalam kasus kita
ini memang benar, karena jika parameter
tidak diteruskan, maka akses ke $_GET['arg']
akan menyebabkan error.
Mungkin timbul pertanyaan, mengapa seseorang bisa masuk ke halaman kita tanpa parameter? Bagaimanapun juga kita bisa menaruh link di mana saja di situs kita dengan parameter ini. Namun, itu bukan jaminan: pengguna situs kita bisa, contohnya, menyalin link dari suatu tempat dan kehilangan parameternya. Atau secara tidak sengaja menghapusnya saat mengedit bilah alamat.
Secara umum, dalam kasus apapun kode kita harus mengantisipasi situasi seperti ini dan melakukan sesuatu. Apa yang bisa dilakukan?
Kita bisa memeriksa parameter GET kita apakah ada dan menampilkannya, hanya jika parameter itu ada:
<?php
if (isset($_GET['arg'])) {
echo $_GET['arg'];
} else {
// bereaksi dengan cara tertentu, misalnya dengan pesan
}
?>
Bisa juga dilakukan dengan cara yang lebih pintar:
<?php
if (!isset($_GET['arg'])) {
$_GET['arg'] = 'default'; // nilai default
}
echo $_GET['arg']; // dijamin akan menampilkan sesuatu tanpa error
?>
Atau bisa juga dibuat sehingga saat mengakses halaman tanpa parameter terjadi redirect ke halaman yang sama dengan parameter:
<?php
if (!isset($_GET['arg'])) {
header('Location: ?arg=default');
}
echo $_GET['arg']; // parameter dijamin ada
?>
Jelaskan, apa perbedaan opsi kedua dengan opsi ketiga.
Misalkan pada halaman page.php bisa diteruskan
sebuah angka dengan menggunakan parameter GET bernama
num. Buatlah sehingga saat diakses
tanpa parameter ini, secara otomatis dilakukan
redirect ke halaman yang sama, tetapi dengan parameter
num bernilai 1.