⊗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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне