Convalida e-mail in PHP

Subodh Poudel 30 gennaio 2023
  1. Utilizzare la funzione filter_var() e FILTER_VALIDATE_EMAIL per convalidare l’e-mail in PHP
  2. Utilizzare le funzioni FILTER_VALIDATE_EMAIL , FILTER_SANITIZE_EMAIL e filter_var() per convalidare l’e-mail in PHP
  3. Usa la funzione preg_match() per convalidare l’e-mail in base all’espressione regolare
Convalida e-mail in PHP

Introdurremo un metodo per convalidare un indirizzo email in PHP utilizzando la funzione filter_var() e l’id del nome del filtro FILTER_VALIDATE_EMAIL. La funzione filter_var() prende l’e-mail come primo argomento e il nome del filtro FILTER_VALIDATE_EMAIL per convalidare l’e-mail rispetto alla sintassi in RFC 822. Questo metodo controlla il formato dell’e-mail valido anziché l’e-mail valida.

Dimostreremo anche un altro metodo per convalidare gli indirizzi e-mail in PHP utilizzando gli ID nome del filtro FILTER_SANITIZE_EMAIL e FILTER_VALIDATE_EMAIL insieme alla funzione fiter_var(). Questo metodo prima disinfetta l’indirizzo e-mail e poi convalida l’indirizzo e-mail.

Introdurremo un altro metodo per convalidare la posta elettronica in PHP utilizzando l’espressione regolare. Questo metodo utilizza la funzione preg_match() per verificare se l’e-mail è valida in base all’espressione regolare fornita.

Utilizzare la funzione filter_var() e FILTER_VALIDATE_EMAIL per convalidare l’e-mail in PHP

Possiamo usare la funzione filter_var() per filtrare una variabile con un particolare nome di filtro. Il nome del filtro FILTER_VALIDATE_EMAIL specifica che l’e-mail deve essere verificata. La funzione accetta l’indirizzo email come stringa come primo parametro e l’id del filtro sopra specificato come secondo parametro. Pertanto, possiamo controllare l’e-mail fornita se è valida. La funzione restituisce i dati filtrati se la funzione ha esito positivo o restituisce false. L’e-mail si dice valida, non nel senso che l’e-mail esiste. L’ID filtro convalida l’e-mail rispetto alla sintassi in RFC 822. Possiamo testare la convalida dell’e-mail utilizzando un’e-mail valida e una non valida.

Ad esempio, crea una funzione validateEmail() che accetta un parametro $email. Utilizzare la funzione filter_var() sulla variabile $email e specificare l’id del filtro FILTER_VALIDATE_EMAIL come secondo parametro. Applicare la condizione if-else alla funzione filter_var(). Nel blocco if, visualizza il messaggio che dice che l’e-mail è valida e nella condizione else, mostra che l’e-mail non è valida. Al di fuori della funzione, chiama la funzione due volte. Nella prima chiamata di funzione fornire l’argomento peter.piper@iana.org e first.last@example.123
nella seconda convocazione.

Possiamo supporre che l’indirizzo e-mail fornito nell’esempio sia accessibile da un modulo utilizzando la variabile $_POST. La funzione nell’esempio seguente viene richiamata due volte. La prima chiamata passa un indirizzo email valido e il secondo indirizzo passa un’email non valida. Il secondo indirizzo email non è valido in quanto contiene numeri nel dominio di primo livello. Il risultato è altrettanto ovvio.

Codice di esempio:

#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');
?>

Produzione:

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

Utilizzare le funzioni FILTER_VALIDATE_EMAIL , FILTER_SANITIZE_EMAIL e filter_var() per convalidare l’e-mail in PHP

Possiamo utilizzare l’ID del nome del filtro aggiuntivo FILTER_SANITIZE_EMAIL nel primo metodo per rimuovere tutti i caratteri illegali da un indirizzo e-mail. L’id del nome del filtro è il secondo argomento nella funzione filter_var(), dove l’indirizzo email è il primo argomento. La funzione restituisce l’e-mail sterilizzata. Possiamo nuovamente utilizzare la funzione per verificare la validità dell’indirizzo e-mail dopo la sanificazione. Per questo, possiamo seguire il primo metodo utilizzando l’id del nome del filtro FILTER_VALIDATE_EMAIL.

Ad esempio, crea una variabile $email e memorizza un indirizzo e-mail con caratteri illegali. Memorizza l’e-mail ram(.mugu)@exa//mple.org come una stringa nella variabile. Usa la funzione filter_var() sulla variabile e usa l’id FILTER_SANITIZE_EMAIL come secondo parametro. Memorizza la funzione sulla stessa variabile $email. Quindi, applica l’istruzione if-else come nel primo metodo. Questa volta, usa l’e-mail FILTER_VALIDATE_EMAIL come nome del filtro nella funzione. Allo stesso modo, visualizza i messaggi.

Nell’esempio seguente viene preso un indirizzo e-mail con un carattere illegale e la funzione filter_var() filtra quei caratteri e disinfetta l’e-mail fornita. L’indirizzo e-mail fornito nell’esempio contiene caratteri illegali come () e //. La funzione prima rimuove questi caratteri dall’e-mail e poi convalida l’e-mail.

Codice di esempio:

#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>";
}
?>

Produzione:

ram.mugu@example.org: A valid email

Usa la funzione preg_match() per convalidare l’e-mail in base all’espressione regolare

Possiamo usare la funzione preg_match() per convalidare l’indirizzo email in PHP. Questo metodo utilizza l’espressione regolare per la regola di convalida dell’e-mail. Possiamo creare noi stessi un’espressione regolare e definire le regole per un’e-mail valida. La funzione preg_match() accetta due parametri in cui il primo è l’espressione regolare e il secondo è l’e-mail da controllare. Possiamo utilizzare l’operatore ternario per verificare la validità dell’e-mail insieme alla funzione.

Ad esempio, crea due variabili, $email_first e $email_secon, e memorizza due indirizzi email in tali variabili. Memorizza prima un’e-mail valida firstlast11@gmail.com e poi una non valida firstlast@11gmail,com. Scrivi una funzione validateEmail() che accetta un parametro. Assegna un nome al parametro $email. All’interno della funzione, scrivi un’espressione regolare nella variabile $regex come nel codice di esempio. Quindi scrivi un operatore ternario dove la condizione da verificare è la funzione preg_match(). Prendi $regex come primo parametro e $email come secondo parametro. Stampa il messaggio che dice che l’e-mail è valida quando la condizione è vera e il messaggio che dice che l’e-mail non è valida quando la condizione è falsa. Fai eco all’intera espressione ternaria. Al di fuori della funzione, chiama due volte la funzione validateEmail(). Usa la variabile $email_first nella prima chiamata di funzione e usa la variabile $email_second nella seconda chiamata di funzione.

Nell’esempio seguente, abbiamo scritto un’espressione regolare che crea una regola per convalidare l’e-mail. Un’e-mail valida contiene il nome del destinatario, il simbolo @, un dominio e un dominio di primo livello. L’espressione regex sopra creata accetta il nome del destinatario come valori alfanumerici. L’alfabeto è composto sia dal maiuscolo che dal minuscolo. Accetta anche un periodo. L’e-mail deve avere il simbolo @. Il dominio contiene solo gli alfabeti. L’e-mail dovrebbe avere un punto quindi. Il dominio di primo livello dovrebbe consistere solo di alfabeti e dovrebbe avere una lunghezza di due o tre. L’espressione regolare viene creata in base a questa regola. La prima email è valida poiché soddisfa tutte le regole, ma la seconda email non è valida. Non è valido perché c’è un numero nel nome di dominio e non c’è un punto prima del dominio di primo livello.

Codice di esempio:

# 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);
?>

Produzione:

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