⊗ppPmRdSWP 407 of 447 menu

Self-redirect met byvoeging van parameters in PHP

Laat op die bladsy index.php 'n GET-parameter met die naam arg oorgedra word. Laat ons die inhoud daarvan op die skerm vertoon:

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

Laat ons aanneem ons bladsy sonder die GET-parameter nie korrek kan werk nie. In ons geval is dit inderdaad so, want as die parameter nie oorgedra is nie, sal toegang tot $_GET['arg'] lei tot 'n fout.

Daar mag 'n vraag ontstaan, hoekom sou 'n mens ooit op ons bladsy sonder die parameter beland? Ons kan tog oral op ons webwerf skakels plaas met hierdie parameter. Dit is egter nie 'n waarborg nie: die gebruiker van ons webwerf kan byvoorbeeld 'n skakel van iewers kopieer en daardeur die parameter verloor. Of dit per ongeluk verwyder deur die adresbalk te wysig.

In elk geval moet ons kode sulke 'n situasie voorveronderstel en iets daaraan doen. Wat kan gedoen word?

Ons kan ons GET-parameter toets vir bestaan en dit slegs vertoon indien dit bestaan:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // reageer op een of ander manier, byvoorbeeld met 'n boodskap } ?>

Ons kan slimmer te werk gaan:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // verstekwaarde } echo $_GET['arg']; // sal gewaarborg iets sonder fout vertoon ?>

Of ons kan dit so maak dat by toegang tot die bladsy sonder parameter 'n redirect na dieselfde bladsy met die parameter plaasvind:

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

Verduidelik wat die verskil is tussen die tweede opsie en die derde een.

Laat op die bladsy page.php 'n nommer oorgedra kan word met behulp van 'n GET-parameter met die naam num. Maak so dat by toegang sonder hierdie parameter, outomaties 'n redirect na dieselfde bladsy uitgevoer word, maar met die parameter num met die waarde 1.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp