Moderator |
|
addslashes() kan natuurlijk nooit kwaad. Je zou ook nog type-controles uit kunnen voeren met bijvoorbeeld is_numeric(), en kunnen controleren of een waarde uit je querystring binnen een bepaald waardebereik valt.
Maar je begint altijd met het controleren of een variabele uberhaupt wel bestaat met isset().
Je zou dus achtereenvolgens kunnen controleren:
- op het bestaan
- op het type
- of de waarde in een bepaald bereik valt.
Dit kan in principe in één if-statement, want if-statements maken gebruik van "lazy evaluation" (volgens mij).
Dit houdt in dat als jij een if-statement hebt met enkel &&, en er een onderdeel is wat false oplevert, er niet meer gekeken wordt naar de rest van het if-statement omdat false && ietsanders nooit true oplevert. Dus als je vlnr de bovenstaande controles uitvoert kan het in één if-statement:
if(isset($_GET['var']) && is_numeric($_GET['var']) && $_GET['var'] > 10)
{
...
}
Let op de volgorde! Als $_GET['var'] geset is, dan wordt er verder gekeken naar de rest van het if-statement, anders niet (lazy evaluation). Nu kun je een controle uitvoeren op het numeriek zijn van de (bestaande!) $_GET-variabele. Als de waarde niet numeriek is, knal je weer uit het if-statement (lazy evaluation). Als de waarde numeriek is zou je de waarde met een andere (numerieke) waarde kunnen vergelijken.
Alle onderdelen van het if-statement die je "passeert", gelden blijkbaar, en daar kun je dan in de rest van je if-statement gebruik van maken. |