[PHP] String auf @ und . überpürfen (mailüberprüfung)

mbassus

Well-known member
ID: 104267
L
23 April 2006
5.071
449
Ich bin sicher das wurde hier schonmal gefragt.. auch mit Forensuche nichts gefunden, oder ich stell mich einfach nur doof an..

Was ist eurer Meinung nach die Beste Lösung dafür?

PHP:
<?
$var_a="[email protected]";
$var_b="mailmailcom";
?>
Wie überprüf ich am besten, das $var_a richtig und $var_b falsch ist?

Liebe Grüße,
Martin
 
Meine Standard-Funktion dafür:

PHP:
/**
 * checks if an email is valid
 *
 * @param string $mail
 * @return bool
 */
function valid_mail($mail){
    return preg_match("/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i", $mail);
}
Der regexp ist zwar nicht von mir (bei Google gefunden, hat mal einer als Beispiel veröffentlicht - ich hatte keine Lust mich um alle gültigen E-Mail Formate zu kümmern *g*) - funktioniert aber ohne Probs
 
Is zwar net die schnellste variante, aber sollte die meisten falschen mail erkennen.

PHP:
function check_email($email) {
   return (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email)) ? true : false;
}
 
Öhrm, sorry, aber ich muss mal pienzen:

Was für einen Sinn macht dieser ternäre Ausdruck?
PHP:
return $bool ? true : false;
:think:
 
Öhm, wubs…
…keinen füchte ich. Hatte beim posten meinen kopf wohl wo anders. Der ausdruck ist überflüssig wie ich gerade bemerke(hatte da ne funktions vorlage genommen und den regex kurz reinkopiert). Aber ansonsten sollte das so problemlos funktionieren*schäm*.
 
Öhm, wubs…
…keinen füchte ich. Hatte beim posten meinen kopf wohl wo anders. Der ausdruck ist überflüssig wie ich gerade bemerke(hatte da ne funktions vorlage genommen und den regex kurz reinkopiert). Aber ansonsten sollte das so problemlos funktionieren*schäm*.
Der reguläre Ausdruck ist aber auch irgendwie komisch. Für mich sieht es so aus, als würdest du Zeichen erlauben, die niemals in einer E-Mail-Adresse auftauchen dürfen. Da kann man sich dann die Prüfung ganz sparen...
 
Meine Standard-Funktion dafür:

PHP:
function valid_mail($mail){
    return preg_match("/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i", $mail);
}
Meiner Meinung nach die beste, danke ;)

Hat super mit 4000 Emailadresse funktioniert. :biggrin:
(Datenbankabgleich, ausmisten falscher user)