E-Mail in PHP validieren

Subodh Poudel 30 Januar 2023
  1. Verwenden Sie die Funktion filter_var() und FILTER_VALIDATE_EMAIL, um die E-Mail in PHP zu validieren
  2. Verwenden Sie die Funktionen FILTER_VALIDATE_EMAIL, FILTER_SANITIZE_EMAIL und filter_var(), um die E-Mail in PHP zu validieren
  3. Verwenden Sie die Funktion preg_match(), um die E-Mail gemäß dem regulären Ausdruck zu validieren
E-Mail in PHP validieren

Wir werden eine Methode zur Validierung einer E-Mail-Adresse in PHP mit der Funktion filter_var() und der Filternamen-ID FILTER_VALIDATE_EMAIL vorstellen. Die Funktion filter_var() verwendet die E-Mail als erstes Argument und den Filternamen FILTER_VALIDATE_EMAIL, um die E-Mail gegen die Syntax in RFC 822 zu validieren. Diese Methode prüft das gültige E-Mail-Format und nicht die gültige E-Mail.

Wir werden auch eine andere Methode zur Validierung von E-Mail-Adressen in PHP demonstrieren, indem wir die Filternamen-IDs FILTER_SANITIZE_EMAIL und FILTER_VALIDATE_EMAIL zusammen mit der Funktion fiter_var() verwenden. Diese Methode bereinigt zuerst die E-Mail-Adresse und validiert dann die E-Mail-Adresse.

Wir werden eine weitere Methode zur Validierung von E-Mails in PHP mit dem regulären Ausdruck vorstellen. Diese Methode verwendet die Funktion preg_match(), um zu prüfen, ob die E-Mail gemäß dem angegebenen regulären Ausdruck gültig ist.

Verwenden Sie die Funktion filter_var() und FILTER_VALIDATE_EMAIL, um die E-Mail in PHP zu validieren

Wir können die Funktion filter_var() verwenden, um eine Variable mit einem bestimmten Filternamen zu filtern. Der Filtername FILTER_VALIDATE_EMAIL gibt an, dass die E-Mail überprüft werden muss. Die Funktion verwendet als ersten Parameter die E-Mail-Adresse als String und als zweiten Parameter die oben angegebene Filter-ID. So können wir die bereitgestellte E-Mail auf ihre Gültigkeit überprüfen. Die Funktion gibt die gefilterten Daten zurück, wenn die Funktion erfolgreich ist oder false zurückgibt. Die E-Mail wird als gültig bezeichnet, nicht in dem Sinne, dass die E-Mail existiert. Die Filter-ID validiert die E-Mail anhand der Syntax in RFC 822. Wir können die Validierung von E-Mails mit einer gültigen und einer ungültigen E-Mail testen.

Erstellen Sie beispielsweise eine Funktion validateEmail(), die einen Parameter $email übernimmt. Verwenden Sie die Funktion filter_var() auf die Variable $email und geben Sie als zweiten Parameter die Filter-ID FILTER_VALIDATE_EMAIL an. Wenden Sie die Bedingung if-else auf die Funktion filter_var() an. Zeigen Sie im if-Block die Meldung an, dass die E-Mail gültig ist, und im else-Zustand, dass die E-Mail ungültig ist. Rufen Sie die Funktion außerhalb der Funktion zweimal auf. Geben Sie im ersten Funktionsaufruf das Argument peter.piper@iana.org und first.last@example.123 an.
beim zweiten Anruf.

Wir können davon ausgehen, dass auf die im Beispiel angegebene E-Mail-Adresse aus einem Formular über die Variable $_POST zugegriffen wird. Die Funktion im folgenden Beispiel wird zweimal aufgerufen. Der erste Aufruf übergibt eine gültige E-Mail-Adresse und die zweite Adresse eine ungültige E-Mail. Die zweite E-Mail-Adresse ist ungültig, da sie Zahlen in der Top-Level-Domain enthält. Das Ergebnis ist ebenso offensichtlich.

Beispielcode:

#php 7.x
<?php
function validateEmail($email) {
    if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "{$email}: A valid email"."<br>";
    }
    else {
        echo "{$email}: Not a valid email"."<br>";
    }
}
validateEmail('peter.piper@iana.org');
validateEmail('first.last@example.123');
?>

Ausgabe:

phppeter.piper@iana.org: A valid email 
first.last@example.123:Not a valid email

Verwenden Sie die Funktionen FILTER_VALIDATE_EMAIL, FILTER_SANITIZE_EMAIL und filter_var(), um die E-Mail in PHP zu validieren

Wir können die zusätzliche Filternamen-ID FILTER_SANITIZE_EMAIL in der ersten Methode verwenden, um alle unzulässigen Zeichen aus einer E-Mail-Adresse zu entfernen. Die Filternamen-ID ist das zweite Argument in der Funktion filter_var(), wobei die E-Mail-Adresse das erste Argument ist. Die Funktion gibt die bereinigte E-Mail zurück. Wir können die Funktion erneut verwenden, um die Gültigkeit der E-Mail-Adresse nach der Bereinigung zu überprüfen. Dazu können wir der ersten Methode folgen, indem wir die Filternamen-ID FILTER_VALIDATE_EMAIL verwenden.

Erstellen Sie beispielsweise eine Variable $email und speichern Sie eine E-Mail-Adresse mit unzulässigen Zeichen darin. Speichern Sie die E-Mail ram(.mugu)@exa//mple.org als String in der Variablen. Verwenden Sie die Funktion filter_var() für die Variable und verwenden Sie die ID FILTER_SANITIZE_EMAIL als zweiten Parameter. Speichern Sie die Funktion in derselben Variablen $email. Wenden Sie dann die if-else-Anweisung wie in der ersten Methode an. Verwenden Sie diesmal die E-Mail FILTER_VALIDATE_EMAIL als Filternamen in der Funktion. Zeigen Sie auf ähnliche Weise die Nachrichten an.

Im Beispiel unten wird eine E-Mail-Adresse mit einem unzulässigen Zeichen verwendet, und die Funktion filter_var() filtert diese Zeichen und bereinigt die bereitgestellte E-Mail. Die im Beispiel angegebene E-Mail-Adresse enthält unzulässige Zeichen wie () und //. Die Funktion entfernt zuerst diese Zeichen aus der E-Mail und validiert dann die E-Mail.

Beispielcode:

#php 7.x
<?php
$email = "ram(.mugu)@exa//mple.org";
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "{$email}: A valid email"."<br>";
}
else{
    echo "{$email}:Not a valid email"."<br>";
}
?>

Ausgabe:

ram.mugu@example.org: A valid email

Verwenden Sie die Funktion preg_match(), um die E-Mail gemäß dem regulären Ausdruck zu validieren

Wir können die Funktion preg_match() verwenden, um die E-Mail-Adresse in PHP zu validieren. Diese Methode verwendet den regulären Ausdruck für die Validierungsregel der E-Mail. Wir können selbst einen regulären Ausdruck erstellen und die Regeln für eine gültige E-Mail definieren. Die Funktion preg_match() verwendet zwei Parameter, wobei der erste der reguläre Ausdruck und der zweite die zu prüfende E-Mail ist. Wir können den ternären Operator verwenden, um die Gültigkeit der E-Mail zusammen mit der Funktion zu überprüfen.

Erstellen Sie beispielsweise zwei Variablen, $email_first und $email_secon, und speichern Sie zwei E-Mail-Adressen in diesen Variablen. Hinterlegen Sie zuerst eine gültige E-Mail firstlast11@gmail.com und im zweiten eine ungültige firstlast@11gmail,com. Schreiben Sie eine Funktion validateEmail(), die einen Parameter benötigt. Nennen Sie den Parameter $email. Schreiben Sie innerhalb der Funktion einen regulären Ausdruck in die Variable $regex wie im Beispielcode. Dann schreiben Sie einen ternären Operator, wobei die zu prüfende Bedingung die Funktion preg_match() ist. Nehmen Sie $regex als ersten Parameter und $email als zweiten Parameter. Drucken Sie die Nachricht, dass die E-Mail gültig ist, wenn die Bedingung wahr ist, und die Nachricht, dass die E-Mail ungültig ist, wenn die Bedingung falsch ist. Echo des gesamten ternären Ausdrucks. Rufen Sie ausserhalb der Funktion die Funktion validateEmail() zweimal auf. Verwenden Sie im ersten Funktionsaufruf die Variable $email_first und im zweiten Funktionsaufruf die Variable $email_second.

Im folgenden Beispiel haben wir einen regulären Ausdruck geschrieben, der eine Regel zum Validieren der E-Mail erstellt. Eine gültige E-Mail enthält einen Empfängernamen, das Symbol @, eine Domain und eine Top-Level-Domain. Der oben erstellte Regex-Ausdruck akzeptiert den Empfängernamen als alphanumerische Werte. Das Alphabet besteht aus Groß- und Kleinbuchstaben. Es akzeptiert auch einen Punkt. Die E-Mail muss das Zeichen @ enthalten. Die Domäne enthält nur die Alphabete. Die E-Mail sollte dann einen Punkt haben. Die Top-Level-Domain sollte nur aus den Alphabeten bestehen und eine Länge von zwei oder drei haben. Der Regex-Ausdruck wird basierend auf dieser Regel erstellt. Die erste E-Mail ist gültig, da sie alle Regeln erfüllt, die zweite E-Mail ist jedoch ungültig. Sie ist ungültig, da der Domainname eine Zahl enthält und vor der Top-Level-Domain kein Punkt steht.

Beispielcode:

# php 7.x
<?php
$email_first = 'firstlast11@gmail.com';
$email_second ='firstlast@11gmail,com';
function validateEmail($email) {
    $regex = "/^([a-zA-Z0-9\.]+@+[a-zA-Z]+(\.)+[a-zA-Z]{2,3})$/";
    echo preg_match($regex, $email) ? "The email is valid"."<br>" :"The email is       not valid";
}
validateEmail($email_first);
validateEmail($email_second);
?>

Ausgabe:

The email is valid 
The email is not valid
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn