Convalida e-mail in PHP
-
Utilizzare la funzione
filter_var()
eFILTER_VALIDATE_EMAIL
per convalidare l’e-mail in PHP -
Utilizzare le funzioni
FILTER_VALIDATE_EMAIL
,FILTER_SANITIZE_EMAIL
efilter_var()
per convalidare l’e-mail in PHP -
Usa la funzione
preg_match()
per convalidare l’e-mail in base all’espressione regolare
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 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