Validatie van emailadres
Ik heb een vraagje.
Onderstaand script wil ik graag aanpassen zodat alleen iemand met een toegekend emailadres wordt geaccepteerd.
Er zit een verificatie in zoals je ziet maar ik zou graag willen dat alleen adressen eindigend op @scuderia-alfa.nl gevalideerd worden.
Wat moet ik veranderen want ik kom er niet uit (noob).
Code (php)
1
2
3
4
5
2
3
4
5
// Check the name and email for validity.
if (trim($_POST['buymeabeer']) != '')
{
if (preg_match('~^[0-9A-Za-z=_+\-/][0-9A-Za-z=_\'+\-/\.]*@[\w\-]+(\.[\w\-]+)*(\.[\w]{2,6})$~', stripslashes($_POST['buymeabeer'])) == 0) {
$post_errors[] = 'bad_paypal';
if (trim($_POST['buymeabeer']) != '')
{
if (preg_match('~^[0-9A-Za-z=_+\-/][0-9A-Za-z=_\'+\-/\.]*@[\w\-]+(\.[\w\-]+)*(\.[\w]{2,6})$~', stripslashes($_POST['buymeabeer'])) == 0) {
$post_errors[] = 'bad_paypal';
Alvast bedankt,
John
Zit al de hele tijd dingetjes uit te proberen maar lukt niet erg.
Zo moeilijk kan dit toch niet zijn? Waar kijk ik nou verkeerd?
Code (php)
Gewijzigd op 26/12/2010 12:37:55 door Justin S
Bedankt voor de hulp en de verwijzingen maar ik heb werkelijk geen idee hoe ik deze moet toepassen.
zie het antwoord van justin, als je dit niet begrijpt moet je eens wat turorials doorlezen over php
Dan kan ik vandaar proberen te begrijpen hoe het werkt.
Kijk eens logisch naar de code van justin. Kijk eens naar PHP: if, PHP: else, PHP: echo en PHP: filter_var.
Dat zijn alle dingen die justin gebruikt heeft en dingen die je nodig hebt.
Code (php)
1
2
3
2
3
<?php
preg_match('~^[0-9A-Za-z=_+\-/][0-9A-Za-z=_\'+\-/\.]*@scuderia-alfa\.nl$~', stripslashes($_POST['buymeabeer']))
?>
preg_match('~^[0-9A-Za-z=_+\-/][0-9A-Za-z=_\'+\-/\.]*@scuderia-alfa\.nl$~', stripslashes($_POST['buymeabeer']))
?>
Offtopic:
Wat betreft de andere reacties: gelieve de vraag eerst goed te lezen. De TS stelt een hele specifieke vraag en filter_var() is voor hem dus geen oplossing!
Gewijzigd op 26/12/2010 13:30:53 door Joren de Wit
Explode?
Blanche - op 26/12/2010 13:29:16:
Verander de reguliere expressie zodanig dat achter de @ alleen het door jou gewenste deel voor kan komen:
Offtopic:
Wat betreft de andere reacties: gelieve de vraag eerst goed te lezen. De TS stelt een hele specifieke vraag en filter_var() is voor hem dus geen oplossing!
Code (php)
1
2
3
2
3
<?php
preg_match('~^[0-9A-Za-z=_+\-/][0-9A-Za-z=_\'+\-/\.]*@scuderia-alfa\.nl$~', stripslashes($_POST['buymeabeer']))
?>
preg_match('~^[0-9A-Za-z=_+\-/][0-9A-Za-z=_\'+\-/\.]*@scuderia-alfa\.nl$~', stripslashes($_POST['buymeabeer']))
?>
Offtopic:
Wat betreft de andere reacties: gelieve de vraag eerst goed te lezen. De TS stelt een hele specifieke vraag en filter_var() is voor hem dus geen oplossing!
Ongelooflijk bedankt.
Hier was ik dus de hele morgen al mee bezig om uit te vogelen waar ik dat moest neerzetten!!! Het werkt perfect nu.
Geen idee dat ik deze slash *@scuderia-alfa\ daar neer moest zetten.
Nu het werkt ga ik eens uitvlooien WAAROM dit werkt.
Thanks a million.
In een reguliere expressie heeft de punt (.) een speciale werking, die matched namelijk alle tekens. Jij wilt alleen een echte punt matchen, dus escape je hem met een backslash.
Blanche - op 26/12/2010 13:47:15:
In een reguliere expressie heeft de punt (.) een speciale werking, die matched namelijk alle tekens. Jij wilt alleen een echte punt matchen, dus escape je hem met een backslash.
Dit ga ik nog een paar keer lezen Blanche haha, maar komt goed.
De crewmembers doen allemaal vrijwillig hun best om anderen te helpen en ik heb deze mod op het forum dus zo aangepast dat anderen hun een kleine beloning kunnen geven. Vandaar dat ik het zo graag werkend wilde hebben.
Nu kan niet zomaar iedereen die mod 'aanzetten' maar alleen degene die ikzelf een emailadres heb gegeven.
Nogmaals bedankt voor je hulp.
John
Graag gedaan, fijne dagen!