PHP
function get_domain($address) {
if (filter_var($address, FILTER_VALIDATE_EMAIL) === false) {
return "";
}
return array_pop(explode('@', $address));
}
function in_blacklist($domain) {
global $blacklist;
return in_array($domain, $blacklist);
}
$domain = get_domain($suoemail);
if (empty($suoemail)) {
$errore .= "• Inserire l'email<br><br>";
}
else {
if (filter_var($suoemail, FILTER_VALIDATE_EMAIL) === false) {
$errore .= "• Inserire un'email valida<br><br>";
}
elseif (empty($domain) || in_blacklist($domain)) {
$errore .= "• Questa email non è accettata<br><br>";
}
}
Questo è il codice js che valida l'email, io al posto della regex ci devo mettere questo FILTER_VALIDATE_EMAIL
function validaMail() {
var f = document.forms.mioform1;
if (f.suoemail.value.length != 0) {
var reg = /^(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/;
if (!f.suoemail.value.match(reg)) {
document.getElementById('validaMail').innerHTML = "• Inserire un'email valida";
f.suoemail.focus();
return false;
}
else {
document.getElementById('validaMail').innerHTML = "";
}
}
else {
document.getElementById('validaMail').innerHTML = "";
}
return true;
}
Ho già anche questo
email_ajax.php
<?php
header('Content-Type: application/json');
function get_domain($address) {
if (filter_var($address, FILTER_VALIDATE_EMAIL) === false) {
return "";
}
return array_pop(explode('@', $address));
}
function in_blacklist($domain) {
global $blacklist;
return in_array($domain, $blacklist);
}
function report($valid = true, $error = 0, $message = "") {
$result = array(
"valid" => $valid,
"error" => $error,
"message" => $message
);
return json_encode($result);
}
$address = $_GET['address'];
$domain = get_domain($address);
// Controlla se il campo è vuoto
if (empty($address)) {
echo report(false, 1);
return;
}
// Controlla se è un'email valida
if (filter_var($address, FILTER_VALIDATE_EMAIL) === false) {
echo report(false, 2);
return;
}
// Controlla se il dominio è spam
if (empty($domain) || in_blacklist($domain)) {
echo report(false, 3);
return;
}
echo report(true);