Ինքնավերահղում GET պարամետրերի ավելացմամբ 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 արժեքով: