Forum › PHP / SQL › Topic
[PHP] Eregi email niet 100% correct
Beste lezers,
ik heb de volgende code:
echter wanneer ik invul "info@mijnsite" dan geeft hij ook "goed" aan in plaats van fout. Bovenstaand is dus zonder domein extensie terwijl dit wel aangegeven zou moeten worden omdat het email adres anders niet geldig is!
Kan iemand mij vertellen hoe ik dit kan oplossen? Ik wil dus dat er perse één apenstaartje (@) in zit en minimaal één punt (.) met daarachter een domein van 2 tot 4 tekens maximaal, om er zeker van te zijn dat het een geldig email adres is.
ik heb de volgende code:
![]() | Code | ![]() | ![]() | ![]() |
|
echter wanneer ik invul "info@mijnsite" dan geeft hij ook "goed" aan in plaats van fout. Bovenstaand is dus zonder domein extensie terwijl dit wel aangegeven zou moeten worden omdat het email adres anders niet geldig is!
Kan iemand mij vertellen hoe ik dit kan oplossen? Ik wil dus dat er perse één apenstaartje (@) in zit en minimaal één punt (.) met daarachter een domein van 2 tot 4 tekens maximaal, om er zeker van te zijn dat het een geldig email adres is.
Je kan beter van het volgende gebruik maken: http://php.net/manual/en/filter.examples.validation.php
Vroeger was het nodig om een eregi of preg match voor email te hebben, nu is een ifje met een extra php functie genoeg!
super gaan we meteen even kijken dankjewel!
EDIT:
Klopt niks van...
Als ik in type:
info@
dan weergeeft hij inderdaad netjes "X" dat het fout is. Typ ik in:
info@mijnsite
dan weergeeft hij "O" dat het correct is.
Geef ik er een punt leesteken achter dan zegt hij weer dat het fout is, maar type ik ook de extensie er achter dan zegt hij weer dat het goed is (uiteraard)...
Dus ergens klopt deze functie niet toch!?... hij hoort enkel en alleen een GOED te geven als:
prefix (info) + apenstaartje (@) + domeinnaam + suffix (extensie) er zijn waarbij de extensie uit minimaal 2, maximaal 4 letters bestaat.
Hopelijk weet iemand een oplossing, zou het dus liever bij expressies houden denk ik gezien bovenstaande ook niet goed werkt.
EDIT:
Klopt niks van...
![]() | Code | ![]() | ![]() | ![]() |
|
Als ik in type:
info@
dan weergeeft hij inderdaad netjes "X" dat het fout is. Typ ik in:
info@mijnsite
dan weergeeft hij "O" dat het correct is.
Geef ik er een punt leesteken achter dan zegt hij weer dat het fout is, maar type ik ook de extensie er achter dan zegt hij weer dat het goed is (uiteraard)...
Dus ergens klopt deze functie niet toch!?... hij hoort enkel en alleen een GOED te geven als:
prefix (info) + apenstaartje (@) + domeinnaam + suffix (extensie) er zijn waarbij de extensie uit minimaal 2, maximaal 4 letters bestaat.
Hopelijk weet iemand een oplossing, zou het dus liever bij expressies houden denk ik gezien bovenstaande ook niet goed werkt.
Maximaal 4 is niet meer van toepassing, maar dit kan kloppen. Deze filter lijkt bij bepaalde php-versies niet goed te werken. Welke versie heb jij?
http://www.php.net/manual/en/filter.filters.validate.php#101693
http://www.php.net/manual/en/filter.filters.validate.php#102529
Hier kun je een regex maken voor de preg_match functie:
http://gskinner.com/RegExr/
Heb je ook al een aantal kant en klare regex'en bij zitten:
denk ik?
http://www.php.net/manual/en/filter.filters.validate.php#101693
http://www.php.net/manual/en/filter.filters.validate.php#102529
Hier kun je een regex maken voor de preg_match functie:
http://gskinner.com/RegExr/
Heb je ook al een aantal kant en klare regex'en bij zitten:
![]() | Code | ![]() | ![]() | ![]() |
|
denk ik?
super dankjewel!!! ik zal straks even de PHP versie na kijken maar dat moet 5 zijn



Offline



