Jump to content

Špeciálne znaky v e-mailovej adrese


Peter.31

Recommended Posts

Zákazník zadal do e-mailového poľa adresu s dvomi bodkami, napr. „[email protected]“. Zistili sme, že pokiaľ ide o syntax e-mailových adries, tak by nemali byť dve bodky za sebou (neakceptuje ich Gmail ani Seznam.cz). Dnes zákazník zadal do e-mailového poľa omylom e-mailovú adresu s dvomi bodkami a po potvrdení objednávky sa mu zobrazila hláška „Error 500“. Objednávku nám ale zaevidovalo.

E-mailové polia na PrestaShope upozornia hlásením, ak v e-mailovej adrese chýba znak „@“ alebo ak je tam znak s diakritikou. Avšak neupozornia, ak zákazník omylom zadá dve bodky za sebou, čo vedie k chybe 500 a tiež sme nemohli editovať e-mailovú adresu zákazníka. Zmenili sme ju až priamo v databáze. Úplne podobné chyby sú vo všetkých e-mailových poliach (napr. objednávkový formulár, kontaktný formulár).

Budem vďačný za akúkoľvek pomoc.

Link to comment
Share on other sites

  • 3 weeks later...
On 3/2/2020 at 11:14 AM, Peter.31 said:

Zákazník zadal do e-mailového poľa adresu s dvomi bodkami, napr. „[email protected]“. Zistili sme, že pokiaľ ide o syntax e-mailových adries, tak by nemali byť dve bodky za sebou (neakceptuje ich Gmail ani Seznam.cz). Dnes zákazník zadal do e-mailového poľa omylom e-mailovú adresu s dvomi bodkami a po potvrdení objednávky sa mu zobrazila hláška „Error 500“. Objednávku nám ale zaevidovalo.

E-mailové polia na PrestaShope upozornia hlásením, ak v e-mailovej adrese chýba znak „@“ alebo ak je tam znak s diakritikou. Avšak neupozornia, ak zákazník omylom zadá dve bodky za sebou, čo vedie k chybe 500 a tiež sme nemohli editovať e-mailovú adresu zákazníka. Zmenili sme ju až priamo v databáze. Úplne podobné chyby sú vo všetkých e-mailových poliach (napr. objednávkový formulár, kontaktný formulár).

Budem vďačný za akúkoľvek pomoc.

Dávám návod pro Prestashop 1.7, protože jsi neuvedl verzi.

Otevři si soubor ../classes/Validate.php

Najdi si funkci isEmail a doplň do funkce preg_match dvě tečky.

Asi nějak takto:

/\..*\./

 

Link to comment
Share on other sites

33 minutes ago, Peter.31 said:

Ďakujem za návod. Mám verziu 1.7.6.1. 

Našiel som síce súbor, v ktorom sa to upravuje, ale po upravení kódu už potom neberie žiadne bodky (z bodky sa potom stane nepovolený znak) napr.: ([email protected]) a ([email protected]).

No tak jiný způsob 😉

public static function isEmail($email)
    {
        $pos_ = strpos($email, '..');
        return 
        !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)
        &&
        $pos_ == 0;
    }
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...