⊗ppPmRdSWP 407 of 447 menu

PHP iseümbersuunamine parameetrite lisamisega

Oletame, et lehel index.php edastatakse GET parameeter nimega arg. Kuvame selle sisu ekraanil:

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

Oletame, et meie leht ilma GET parameetrita ei saa korrektselt töötada. Meie juhul see kehtib tõesti, sest kui parameeter ei ole edastatud, siis juurdepääs $_GET['arg'] põhjustab vea.

Võib tekkida küsimus, miks üldse inimene jõuab meie lehele ilma parameetrita? Lõppude lõpuks võime me kõikjal oma saidil panna lingid selle parameetriga. Siiski, see ei ole garantii: meie saidi kasutaja võib näiteks kuskilt linki kopeerida ja kaotada selle käigus parameetri. Või lihtsalt kogemata selle kustutada, aadressiriba muutes.

Üldjuhul peaks meie kood igal juhul eeldama sellist olukorda ja midagi sellega ette võtma. Mida siis teha saab?

Saame kontrollida meie GET parameetri olemasolu ja kuvada seda ainult siis, kui see on olemas:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // reageerime kuidagi, näiteks teatega } ?>

Võib läheneda saledamalt:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // vaikeväärtus } echo $_GET['arg']; // garanteeritult midagi väljastab veata ?>

Või saab teha nii, et lehele ilma parameetrita sisenedes toimub ümbersuunamine samale lehele parameetriga:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // parameeter on garanteeritult olemas ?>

Kirjelda, milles erineb teine variant kolmandast.

Oletame, et lehel page.php saab edastada numbri kasutades GET parameetrit nimega num. Tehke nii, et sisenemisel ilma antud parameetrita, teostatakse automaatselt ümbersuunamine samale lehele, kuid parameetriga num väärtusega 1.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu