⊗ppPmRdSWP 407 of 447 menu

Automatické presmerovanie s pridaním parametrov v PHP

Nech na stránke index.php sa odovzdáva GET parameter s názvom arg. Vypíšme jeho obsah na obrazovku:

<?php echo $_GET['arg']; ?>

Nech naša stránka bez GET parametra nemôže korektne fungovať. V našom prípade je to naozaj tak, pretože ak parameter nie je odovzdaný, tak prístup k $_GET['arg'] povedie k chybe.

Môže vzniknúť otázka, prečo vôbec človek príde na našu stránku bez parametra? Veď môžeme všade na našom webe umiestniť odkazy s týmto parametrom. Avšak, to nie je záruka: používateľ nášho webu môže napríklad kopírovať odniekiaľ odkaz a pritom stratiť parameter. Alebo ho jednoducho náhodne odstrániť pri úprave adresného riadku.

Vo všeobecnosti, v každom prípade náš kód by mal predpokladať takúto situáciu a niečo s ňou urobiť. Čo sa dá urobiť?

Môžeme skontrolovať existenciu nášho GET parametra a vypísať ho, len ak existuje:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // nejako zareagujeme, napríklad správou } ?>

Môžeme postupovať prefíkanešie:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // predvolená hodnota } echo $_GET['arg']; // garantovane niečo vypíše bez chyby ?>

Alebo môžeme urobiť tak, aby pri príchode na stránku bez parametra došlo k presmerovaniu na tú istú stránku s parametrom:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // parameter je garantovane prítomný ?>

Vysvetlite, v čom je rozdiel medzi druhou možnosťou a treťou.

Nech na stránke page.php je možné odovzdať číslo pomocou GET parametra s názvom num. Zabezpečte, aby pri príchode bez tohto parametra sa automaticky vykonalo presmerovanie na tú istú stránku, ale s parametrom num s hodnotou 1.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť