Scripts

[Snippet] Check E-mail

Met onderstaand snippet wordt een e-mail adres gecontroleerd. Deze wordt op meerdere factoren gevalideerd qua formaat. Dit script vraagt het domain niet op, en is daarom niet 100% waterdicht. Toch kun je ervan op aan dat hij alleen e-mail adressen toelaat met een geldige formattering. Let op: Ook komma's worden gezien als fouten, dit heb ik gedaan om tevens spam tegen te gaan, op deze manier wordt het adres alleen goedgekeurd als er maar 1 adres in staat. Dus als het mogelijk moet zijn om een e-mail naar meerdere adressen te sturen, moet het script worden aangepast. Gebruik Het is eenvoudig te gebruiken, je kunt dit bijvoorbeeld bovenaan je script plakken waar je het wilt gebruiken, maar ook includen, vervolgens pas je het zo toe:

snippet-check-email
<?PHP
if(! function_exists("checkMail"))
{
    function checkMail($email)
    {
        if(! preg_match("^[^@]{1,64}@[^@]{1,255}$", $email))
        {
            return false;
        }
        $email_array = explode("@", $email);
        $local_array = explode(".", $email_array[0]);
        for($i = 0; $i < sizeof($local_array); $i++)
        {
            if(! preg_match("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
            {
                return false;
            }
        }
        if(! preg_match("^\[?[0-9\.]+\]?$", $email_array[1]))
        {
            $domain_array = explode(".", $email_array[1]);
            if(sizeof($domain_array) < 2)
            {
                return false;
            }
            for($i = 0; $i < sizeof($domain_array); $i++)
            {
                if(! preg_match("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i]))
                {
                    return false;
                }
            }
        }
        return true;
    }
}
?>

Reacties

0
Nog geen reacties.