⊗ppPmRdSWP 407 of 447 menu

Itselleen uudelleenohjaus parametrien lisäämisellä PHP:ssä

Oletetaan, että sivulla index.php välitetään GET-parametri nimeltä arg. Tuodaan sen sisältö näytölle:

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

Oletetaan, että sivuamme ei voida toimia oikein ilman GET-parametria. Meidän tapauksessamme tämä on todella niin, koska jos parametria ei ole välitetty, niin viittaus $_GET['arg'] johtaa virheeseen.

Saatetaan kysyä, miksi ihminen yleensäkään päätyy sivuillemme ilman parametria? Loppujen lopuksi voimme laittaa kaikkialle sivustollemme linkkejä tällä parametrilla. Tämä ei kuitenkaan ole takuu: sivustomme käyttäjä voi esimerkiksi kopioida jostain linkin ja menettää samalla parametrin. Tai vain vahingossa poistaa sen, muokatessaan osoiteriviä.

Yleisesti ottaen, missä tahansa tapauksessa koodimme tulisi olettaa tällainen tilanne ja tehdä sillä jotain. Mitä voi tehdä?

Voimme tarkistaa GET-parametrimme olemassaolon ja tuoda sen näytölle vain, jos se on olemassa:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // jotenkin reagoidaan, esimerkiksi viestillä } ?>

Voi toimia ovelammin:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // oletusarvo } echo $_GET['arg']; // takuu, että jotain tulostuu ilman virhettä ?>

Tai voidaan tehdä niin, että kun siirrytään sivulle ilman parametria, tapahtuu uudelleenohjaus samalle sivulle parametrin kanssa:

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

Kertokaa, mitä eroa on toisella vaihtoehdolla ja kolmannella.

Oletetaan, että sivulla page.php voidaan välittää luku GET-parametrin avulla nimeltä num. Tee niin, että kun siirrytään ilman tätä parametria, suoritetaan automaattisesti uudelleenohjaus samalle sivulle, mutta parametrilla num arvossa 1.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää