Email prüfen mit filter_var

  • Hallo zusammen,

    gibt es in Joomla eine Möglichkeit ganz schnell zu testen, ob eine Email-Addresse gültig ist oder nicht? Natürlich kann ich mir mit den Regulären-Ausdrücken was bauen aber vielleicht gibts ja was alternatives. Übrigens, dieser Code funktioniert bei mir irgendwie nicht:


    Code
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $emailErr = "Invalid email format";
    }

    Gibts hierzu irgendwelche Gründe?

    Danke schon im voraus, Tobi

  • Dass Joomla

    Code
    FILTER_VALIDATE_EMAIL

    nicht verwendet, liegt daran, dass leider Emails mit punktlosem Domainnamen rausgefiltert werden, was z.B. bei punktlosen Intranetzen zu Problemen führt.

    Code
    peter@unser-interner-server

    geht z.B. nicht durch. Deshalb verwendet Joomla leider weiterhin einen ekelhaft komplizierten regulären Ausdruck.

  • Ich hab meinen Fehler auch gerade gefunden.

    Wenn ich eine Email-Adresse über AJAX an mein Modul schicke, dann verschwindet das '@' Zeichen im String. Hab jetzt im Javascript das ersetzt und dann im PHP code re-ersetzt :P Jetzt gehts.

    Ajax filtert definitiv nicht, das liegt wahrscheinlich eher an deinem angewendeten Filter...

    Danke Re:Later dass du die Joomla!-Methode vorschlägst, machen/können nur noch die wenigsten.

  • Hallo zusammen,

    also ich weiß nicht wo das »@« Zeichen verscheindet. Im Javascript ist es noch da:

    Und im Modul ist der Aufruf wie folgt:

    Code
        public static function getAjax()                                            
        {                                                                           
            $input = JFactory::getApplication()->input;                             
            $function = $input->get('function');                                    
            $email = $input->get('email');
            return $email;
        }              

    In der Konsole erhatle ich die Email, dann als Alert die Email ohne besagtes @ Zeichen.