Бозгашт ба ҳамон саҳифа бо илова кардани параметрҳо дар PHP
Бигзор ба саҳифаи index.php параметри GET
бо номи arg фиристода шавад.
Мундариҷаи онро ба экран чоп мекунем:
<?php
echo $_GET['arg'];
?>
Бигзор саҳифаи мо бе параметри GET
натовонад дуруст кор кунад. Дар ҳолати мо
ин ҳамин тавр аст, зеро агар параметр
фиристода нашавад, муроҷиат ба $_GET['arg']
ба хато меорад.
Шояд ин савол пайдо шавад, ки одатан одам чӣ гуна ба саҳифаи мо бе параметр меафтад? Ҳол он ки мо метавонем дар тамоми сомонаи худ истинодҳоро бо ин параметр гузорем. Аммо, ин кафолат нест: корбари сомонаи мо метавонад, барои намуна, истинодро аз ҷое нусхабардорӣ кунад ва дар ин ҳолат онро аз даст диҳад. Ё танҳо ба таври аз рӯи хато онро нест кунад, дар ҳоле ки сатри суроғаро таҳрир мекунад.
Ба ҳар ҳол, рамзи мо бояд чунин ҳолатро пешбинӣ кунад ва чизе бо он анҷом диҳад. Чӣ метавонад кард?
Метавонад параметри GET-и худро барои мавҷуд будан тафтиш кунад ва онро танҳо агар мавҷуд бошат, чоп кунад:
<?php
if (isset($_GET['arg'])) {
echo $_GET['arg'];
} else {
// ба ягон тавр посух медиҳем, барои намуна, паём
}
?>
Метавонад бо роҳи зиёрактар рафтор кард:
<?php
if (!isset($_GET['arg'])) {
$_GET['arg'] = 'default'; // қимати пешфарз
}
echo $_GET['arg']; // кафолат медиҳад, ки чизе бе хато чоп мекунад
?>
Ё метавонад чунин кард, ки агар вориди саҳифа бе параметр шавад, бозгашт ба ҳамон саҳифа бо параметр рух диҳад:
<?php
if (!isset($_GET['arg'])) {
header('Location: ?arg=default');
}
echo $_GET['arg']; // параметр кафолатан мавҷуд аст
?>
Фарқи вариантҳои дуюм ва сеюмро баён кунед.
Бигзор ба саҳифаи page.php рақам бо ёрии параметри GET бо номи
num фиристода шавад. Чунин кунед, ки агар воридшавӣ
бе ин параметр рух диҳад, ба таври худкор бозгашт ба ин саҳифа, аммо бо параметри
num бо қимати 1 иҷро шавад.