E-Mail Überprüfung

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • E-Mail Überprüfung

    ich prüfe E-Mails ob sie korrekt sind mit folgender Funktion

    PHP Code:
    if (!preg_match ("/^[a-z0-9_\.-]{2,}@[a-z0-9-]{3,}\.[a-z0-9_\.-]{2,10}$/i"$_POST['text_email'])) 
    Das funktioniert auch soweit wunderbar, nur kommt es zu Problemen, wenn die Mail zB in dieser Form ist: name@de.firma.com
    Kann mir jemand sagen, was ich an der Funktion ändern muss, damit eine solche Mail als gültig anerkannt wird.

    Danke
    Tim

  • #2
    Schon mal so probiert ?
    PHP Code:
    "/^[a-z0-9_.-]{2,}@[a-z0-9-]{0,}\\..[a-z0-9_-]{1,}\\..[a-zA-Z]{2,}$/is"$_POST['text_email'
    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Comment


    • #3
      Siehe

      15.11. Wie kann ich feststellen, ob eine Mailadresse äußerlich gültig ist?
      http://faq-php.de/q/q-mail-adresse-gueltig.html

      und weiterführenden Link beachten.

      Gruß
      Uwe

      Comment


      • #4
        Original geschrieben von jahlives
        Schon mal so probiert ?
        PHP Code:
        "/^[a-z0-9_.-]{2,}@[a-z0-9-]{0,}\\..[a-z0-9_-]{1,}\\..[a-zA-Z]{2,}$/is"$_POST['text_email'
        Gruss

        tobi
        Das bringt leider immer die Meldung einer ungültigen Mail Adresse, auch wenn sie richtig geschrieben ist.

        Comment


        • #5
          Schu doch mal auf phpclasses.org. Es gibt da eine Klasse, die sogar überprüft, ob die Emailadresse existiert

          CU
          rivella

          Comment


          • #6
            da brauch man gar nicht bei phpclasses.org schauen, wozu gibt es PEAR::Validate?
            Dort schau mal nach der Funktion "email()", die ist wunderbar und behebt auch dein problem mit subdomain-emails (ich nenn die mal so *g*)

            MfG

            Comment


            • #7
              Original geschrieben von Trashar
              [B]da brauch man gar nicht bei phpclasses.org schauen, wozu gibt es PEAR::Validate?
              Den Hinweis habe ich gestern auch schon gegeben, aber anscheinend ist das ignoriert worden. Weiß der Geier warum.

              Gruß
              Uwe

              Comment


              • #8
                Original geschrieben von uwe59
                Den Hinweis habe ich gestern auch schon gegeben, aber anscheinend ist das ignoriert worden. Weiß der Geier warum.

                Gruß
                Uwe
                Oh tut mir leid, hab deinen Link nicht angeklickt und die weiterführenden Links beachtet.. Naja vielleicht wird er ja jetzt drauf aufmerksam

                Comment


                • #9
                  @topicstarter
                  also der Regexp matched sehr wohl auf die von dir angegebene Adresse name@de.domain.ch es funzt auch mit name.nachname@de.domain.ch
                  Probleme wirds höchstens dann geben, wenn du Adressen nach dem Motto @de.fr.domain.ch hast. Der RegExp matched nur wenn es 2 oder weniger Teile zwischen @ und dem letzten Punkt sind.
                  Mit diesem RegExp matche ich auch die
                  PHP Code:
                  '/^[a-zA-Z0-9_\\.-]{2,}@[a-z0-9-\\._]{3,}\\.[a-z]{2,4}|museum$/is' 
                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Comment


                  • #10
                    Hört doch auf mit den regulären Ausdrücken, die sind in der Form einfach Quatsch. Aus der FAQ:

                    Ein einfacher regulärer Ausdruck reicht zur Prüfung nicht aus, da RFC822-Mailadressen eine relativ komplexe Syntax haben können. Die meisten Prüfungen auf der Basis einer einfachen Regexp lehnen viele legale Adressen ab (Es existieren zum Beispiel inzwischen gültige Toplevel-Domains mit mehr als 3 Buchstaben) und lassen zugleich ungültige Adressen zu.

                    Gruß
                    Uwe

                    Comment


                    • #11
                      Aber wie glaubst du, dass das sonst gemacht wird ? Etwa ohne RegExp ? Dann wirds aber echt schwierig.
                      Ausserdem auch wenn eine Adresse den RegExp überlebt, heisst das noch lange nicht, dass die Adresse auch existiert.
                      Drum würde ich das zweistufig machen. Erst einen RegExp drüber und dann, im Erfolgsfall, eine Email mit einem Conf Link schicken und warten ob der geklickt wird.
                      Erst dann weisst du sicher, dass diese Adresse korrekt ist.
                      Es existieren zum Beispiel inzwischen gültige Toplevel-Domains mit mehr als 3 Buchstaben
                      Drumm im RegExp die {2,4} für die tld.

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Comment


                      • #12
                        Original geschrieben von jahlives
                        Drumm im RegExp die {2,4} für die tld.
                        .museum ...?


                        Außerdem wäre, wie schon öfters erwähnt, auch "john doe"@example.com eine gültige Mailadresse ...
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Comment


                        • #13
                          Außerdem wäre, wie schon öfters erwähnt, auch "john doe"@example.com eine gültige Mailadresse
                          Bist du sicher ? Glaub ich weniger. Und der hunds RegExp Seite sagt dasselbe
                          http://pcre.nophia.de/evaluate/17ee2...dex.php#output

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Comment


                          • #14
                            Ich wiederhole mich:

                            15.11. Wie kann ich feststellen, ob eine Mailadresse äußerlich gültig ist?
                            http://faq-php.de/q/q-mail-adresse-gueltig.html

                            und weiterführenden Link beachten.

                            Pear hatte eine Klasse, die das wesentlich genauer macht!

                            Gruß
                            Uwe

                            Comment


                            • #15
                              Original geschrieben von jahlives
                              Bist du sicher ?
                              Ja.
                              Und der hunds RegExp Seite sagt dasselbe
                              Und - Aussagekraft?
                              Wegen irgendeines Regulären Ausdrucks, den irgendjemand da eingetragen hat - und der offensichtlich genauso unzulänglich ist wie die hier im Thread geposteten ...?
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Comment

                              Working...
                              X