⊗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ščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј