Email address validation missing - domaincom accepted (dot missing)



  • Hi,

    A customer was able to sign up with a gmailcom address (dot missing).

    I think the shop software should validate the address and require a dot in the part after the @.

    Is there a way we could implement this?



  • about validation, I don’t know if is already possible but think about the possibility to allow of emails like:
    username+test@domain.ext
    https://www.cs.rutgers.edu/~watrous/plus-signs-in-email-addresses.html



  • Hi,

    You can implement this with an override.
    Just create a file named Validate.php in directories override\classes
    So you get your file at override\classes\Validate.php

    In Validate.php, just write:

    <?php
    
    class Validate extends ValidateCore
    {
        public static function isEmail($email)
        {
            if (empty($email) || !preg_match(Tools::cleanNonUnicodeSupport('/^[a-z\p{L}0-9!#$%&\'*+\/=?^`{}|~_-]+[.a-z\p{L}0-9!#$%&\'*+\/=?^`{}|~_-]*@[a-z\p{L}0-9]+(?:[.]?[_a-z\p{L}0-9-])*\.[a-z\p{L}0-9]+$/ui'), $email))
                return false;
    
            try {
                \Swift_Message::newInstance()->setFrom($email);
    
                return true;
            } catch (\Exception $e) {
                return false;
            }
        }
    }
    
    

    Clean the cache (especially class_index.php), and it’s works.

    Regards.



  • Thanks, @Lathaneo!

    @mdekker But is there a strong use case for email addresses without a TLD for an online shop? I would assume the only place where that would be required is with a type of localhost domain, but not for any true customer email address.



  • Hope this will help you…email address validation


 

Looks like your connection to thirty bees forum was lost, please wait while we try to reconnect.