E-Mail in PHP validieren

Subodh Poudel 30 Januar 2023 PHP PHP Email
  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
Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
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