⊗ppPmRdSWP 407 of 447 menu

Samoprzekierowanie z dodawaniem parametrów w PHP

Załóżmy, że na stronie index.php przekazywany jest parametr GET o nazwie arg. Wyświetlmy jego zawartość na ekranie:

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

Załóżmy, że nasza strona bez parametru GET nie może działać poprawnie. W naszym przypadku faktycznie tak jest, ponieważ jeśli parametr nie został przekazany, to odwołanie do $_GET['arg'] spowoduje błąd.

Może pojawić się pytanie, dlaczego w ogóle użytkownik trafi na naszą stronę bez parametru? Przecież możemy wszędzie na naszej stronie internetowej umieszczać linki z tym parametrem. Jednak to nie jest gwarancja: użytkownik naszej strony może, na przykład, skopiować gdzieś link i przy tym stracić parametr. Albo po prostu przypadkowo go usunąć, edytując pasek adresu.

W każdym razie, nasz kod powinien zakładać taką sytuację i coś z nią zrobić. Co można zrobić?

Można sprawdzać istnienie naszego parametru GET i wyświetlać go tylko wtedy, gdy istnieje:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // w jakiś sposób reagujemy, na przykład komunikatem } ?>

Można postąpić sprytniej:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // wartość domyślna } echo $_GET['arg']; // gwarantowanie coś wyświetli bez błędu ?>

A można zrobić tak, aby przy wejściu na stronę bez parametru następowało przekierowanie na tę samą stronę z parametrem:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // parametr jest gwarantowany ?>

Opowiedz, na czym polega różnica między drugim wariantem a trzecim.

Załóżmy, że na stronie page.php można przekazać liczbę za pomocą parametru GET o nazwie num. Zrób tak, aby przy wejściu bez tego parametru, automatycznie wykonywało się przekierowanie na tę samą stronę, ale z parametrem num o wartości 1.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć