⊗ppPmRdSWP 407 of 447 menu

თვითრედირექტი პარამეტრების დამატებით 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.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა