Seite 1 von 1

Problem mit der Email prüfung

Verfasst: 10.12.2006 14:10
von mirk
Hi Com

Hab ein Problem mit dem folgendem Code:

Code: Alles auswählen

// check whether input is a valid email address
	function isEmailAddress($field, $msg)
	{
		$value = $this->_getValue($field);
		$pattern = "/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/";
		if(preg_match($pattern, $value))
		{
			return true;
		}
		else
		{
			$this->_errorList[] = array("field" => $field, "value" => $value, "msg" => $msg);
			return false;
		}
	}
Der code überprüft die Email auf ihre richtigkeit. Aber wenn ein User eine kurze email hat d.h. nur 2 zeichen vor dem @ bekommt er die meldung er soll eine gültige Email angeben. Das wird irgendwie hier definiert:

Code: Alles auswählen

$pattern = "/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/";
Habe aber keine Ahnung wie ich das ändern soll. Kann mir einer helfen?

Danke & Gruss
mirk

Verfasst: 10.12.2006 16:33
von Miriam
Also am Patterm liegt's nicht.

Probier mal:

Code: Alles auswählen

<?php
$value = array('test@web.de', 'az@free.com', 'a.z@tester.der', 'a+z@german.org');
$pattern = "/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/";
for ($i=0; $i<count($value); $i++)
{
	if(preg_match($pattern, $value[$i]))
	      {
	         echo $value[$i] . " ist okay<br />";
	      }
	      else
	      {
	         echo $value[$i] . " ist nicht okay!<br />";
	      }
}
?>