Regular expressions als validatie
Vele mensen gebruiken de functie ereg() of preg_match() om een stukje validatie te doen in hun formulieren. Die intentie is erg goed, maar je moet ook met ereg() goed oppassen dat je alles wel goed doet. Het is namelijk niet altijd even veilig.
Ik kom dit voornamelijk tegen in de forums van PHPFreakz.nl, bijvoorbeeld. Mensen proberen wel te valideren maar laten dan op het laatste moment dan toch een steekje vallen. Want het verschil tussen:
en
is namelijk ook het verschil tussen:

en

Buiten het feit dat je $_GET en $_POST data sowieso niet zomaar moet weergeven zonder de juiste beveiligingen, moet je ook goed controleren of je met ereg(), eregi() en ook met preg_match() wel de hele string matched, dus!
Update 9/4/2007: Gebruik je preg_match() voor je validaties? Gebruik dan altijd de D-modifier in je patroon. Meer informatie vind je in: Quick tip: waarden controlen met preg_match() in PHP.
Volg Scriptorama via RSS!
Reageer ook!
Ik gebruik altijd deze:
preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_POST['email'])
Door bokko
op 02.14.06 @ 11:28 am | Permalink
Ja dit is weer een hele goeie...
Door virus die via mijn ftp-prog mijn webruimte had vervuild ben ik erg geinteresseerd in dit soort dingen! Maar hoe meer ik lees... Ik val van de ene verbazing in de andere! Bedankt voor jullie goede werk!
Door Jay
op 03.15.06 @ 9:01 pm | Permalink
[...] Lees hier waarom het belangrijk is voor de veiligheid van jouw website om deze anchors goed te gebruiken. [...]
Door Een emailadres validator schrijven met Regular Expressions | Scriptorama op 05.07.06 @ 5:24 pm | Permalink
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>