PHP-da Parametrlar Qo‘shib O‘z-o‘ziga Qayta Yo‘naltirish
Faraz qilaylik, index.php sahifasiga
arg nomli GET parametri uzatilgan.
Keling, uning tarkibini ekranga chiqaramiz:
<?php
echo $_GET['arg'];
?>
Faraz qilaylik, bizning sahifamiz GET parametrisiz
to‘g‘ri ishlay olmaydi. Bizning holatda
bu haqiqatan ham shunday, chunki agar parametr
uzatilmasa, $_GET['arg'] ga murojaat
xatolikka olib keladi.
Savol tug‘ilishi mumkin: nega umuman odam parametrsiz sahifamizga tushadi? Axir biz saytimizning hamma joyida ushbu parametr bilan havolalarni qo‘yishimiz mumkin. Biroq, bu kafolat emas: misol uchun, saytimiz foydalanuvchisi havolani biron joydan nusxalab olayotganda parametrni yo‘qotib qo‘yishi mumkin. Yoki oddiygina uni tasodifan o‘chirib tashlashi mumkin, manzil satrini tahrirlaganda.
Umuman olganda, har qanday holatda ham bizning kodimiz bunday vaziyatni hisobga olishi va unga nimanidir qilishi kerak. Nima qilish mumkin?
Bizning GET parametrimizning mavjudligini tekshirish mumkin va uni faqat mavjud bo‘lsagina chiqarish mumkin:
<?php
if (isset($_GET['arg'])) {
echo $_GET['arg'];
} else {
// qandaydir reaksiya, masalan, xabar bilan
}
?>
Yoki aqlliroq usul qo‘llash mumkin:
<?php
if (!isset($_GET['arg'])) {
$_GET['arg'] = 'default'; // standart qiymat
}
echo $_GET['arg']; // xatosiz nimadir chiqarishi kafolatlanadi
?>
Yoki parametrsiz sahifaga kirishda, shu sahifaga parametr bilan qayta yo‘naltirish amalga oshirilishi mumkin:
<?php
if (!isset($_GET['arg'])) {
header('Location: ?arg=default');
}
echo $_GET['arg']; // parametr mavjudligi kafolatlanadi
?>
Ikkinchi variant va uchinchi variant o‘rtasidagi farqni tushuntiring.
Faraz qilaylik, page.php sahifasiga
num nomli GET parametri orqali raqam uzatilishi mumkin.
Ushbu parametr uzatilmagan holda kirishda, avtomatik ravishda
shu sahifaga, lekin num parametri 1 qiymatida bo‘lgan holda
qayta yo‘naltirish bajariladigan qiling.