Testen von Eingaben durch Reguläre Ausdrücke

tittli

Erfahrenes Mitglied
Hallo

Wollte den Benutzer nach Geburtstag und -Jahr bzw. E-Mail-Adresse abfragen. Ein php-Script sollte testen, ob Daten vorhanden sind und ob die Daten gültig (vom Format her) sind. Dies wollte ich durch reguläre Ausdrücke tun:

PHP:
  //Regulaere Ausdruecke
  $reg_aus_tag = "([0-9]{1,2})";
  $reg_aus_jahr = "([0-9]{4})";
  $reg_aus_mail = "^([_a-zA-Z0-9-]+)@([a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*)$";

Hier wurden die regulären Ausdrücke definiert. Im folgenden sollten die Daten überprüft werden:

PHP:
  $found_tag = ereg($reg_aus_tag, $tag);
  if (strlen($tag=trim($tag))==0 or !isset($found_tag))
          {
          echo "Geburtstag: Tag fehlt";
          echo "<br>";
          ++$inc;
          }

Analog dazu das Jahr und die Mail-Adresse. Aber genau das funktioniert nicht. Fehlermeldungen werden zwar keine ausgegeben, aber überprüft wird irgendwie auch nicht. D.h. wenn ich eigentlich ungültige Daten eingebe (z.b. beim Tag zwei Buchstaben) passiert nichts. Was ist daran falsch? Kann mir hier bitte jemand helfen?

danke bereits im Voraus

gruss
 
Morgen

Hier mal ein Code um eine Mailaddy zu checken >>

PHP:
function check_mail($eingabe_mail) 
{
	if(eregi("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,4})$", trim($eingabe_mail)))
		return 1;
    else
		return 0;
}

Wegen dem Datum muss ich selber mal eben schauen. Reguläre Ausdrücke find ich doch irgendwie blöd ;)

Andreas
 
Ich nochmal,

ich hab hier gerad in meinen Scripts etwas gefunden, was die vielleicht weiterhilft:

Diese Funktion prüft, ob das eingegebene Datum das Format irgendwas zwischen D.M.YY bis DD.MM.YYYY hat.

PHP:
function check_syntax_day($inp_tag)
	return eregi("^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$", $inp_tag);


Mfg
Andreas
 
hmm...irgendwie hilft mir das auch nicht weiter. Den Ausdruck für die Mail-Adresse habe ich aus einem Buch, sollte also eigentlich stimmen. Aber irgendwie wird nichts überprüft...also warum nicht?

gruss
 
Zurück