php-emailcheck funktion... problem

breytex

Mitglied
Hallo und guten Morgen!

Ich habe vor längerer Zeit mal eine Email-Check-Funktion gefunden, die prüft, ob die email stimmt...

PHP:
				function check_email($email, $tdl_check = 1){
					$tld = ($tdl_check == 1) ? '([a-zA-Z]{2,4})' : 'de|com|org|biz|info|net';
					$tld_s_zeichen = preg_match('/\.de$/isU', $email) ? 'áàâåäãæcçéèêëíìîïñóòoôöoõøoúùûüuýyÿzðþß' : '';
					$pattern[0] = '/^[_a-z0-9]+(\.[_a-z0-9-]+)*@[_a-z0-9-'. $tld_s_zeichen .']{3,63}+(\.[_a-z0-9-'. $tld_s_zeichen .']{3,63}+)*\.'. $tld .'$/isU';
					$pattern[1] = '/@[-]|[-]\.|\.[-]|@..[-]{2,}|\...[-]{2,}/U';
					$pattern[2] = '/@(.*[a-z'. $tld_s_zeichen .']+.*)(\..*[a-z'. $tld_s_zeichen .']+.*)*\.'. $tld .'$/isU';
					return (!preg_match($pattern[0], $email) || preg_match($pattern[1], $email) || !preg_match($pattern[2], $email)) ? false : true;
				}

mein Problem:

peter-pan@web.de geht z.b. nicht aufgrund des "-"...
kann mir jemand sagen was und wie ich das script ändern muss ?
ich steige durch die "was ist erlaubt" Zeichenketten irgendwie nicht so richtig durch...
 
Wieso nicht so:

PHP:
if (eregi("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,3}$",$_POST['feld78']))
{
  / code
}
 
Zurück