⊗ppPmRdSWP 407 of 447 menu

Samopreusmeravanje sa dodavanjem parametara u PHP

Neka se na stranici index.php prosleđuje GET parametar sa imenom arg. Ispišimo njegov sadržaj na ekran:

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

Neka naša stranica bez GET parametra ne može da radi ispravno. U našem slučaju to je zaista tako, jer, ako parametar nije prosleđen, onda će pristupanje $_GET['arg'] dovesti do greške.

Može se postaviti pitanje, zašto bi uopšte neko došao na našu stranicu bez parametra? Pošto mi možemo svuda na našem sajtu da postavimo linkove sa ovim parametrom. Međutim, to nije garancija: korisnik našeg sajta može, na primer, da kopira otkud god link i da pri tome izgubi parametar. Ili ga prosto slučajno obriše, uređujući adresnu traku.

Uglavnom, u svakom slučaju naš kod treba da pretpostavi takvu situaciju i da nešto uradi po tom pitanju. Šta može da se uradi?

Možemo da proverimo naš GET parametar na postojanje i da ga ispišemo, samo ako on postoji:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // nekako reagiramo, na primer, porukom } ?>

Možemo postupiti lukavo:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'podrazumevano'; // podrazumevana vrednost } echo $_GET['arg']; // garantovano će nešto ispisati bez greške ?>

A možemo da uradimo tako da pri dolasku na stranicu bez parametra dođe do preusmeravanja na tu istu stranicu sa parametrom:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=podrazumevano'); } echo $_GET['arg']; // parametar je garantovano prisutan ?>

Objasnite, po čemu se drugi varijant razlikuje od trećeg.

Neka se na stranici page.php može proslediti broj pomoću GET parametra sa imenom num. Uredite tako da pri dolasku bez ovog parametra, automatski se izvrši preusmeravanje na tu istu stranicu, ali sa parametrom num u vrednosti 1.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij