valentintools: E-Mail-Überprüfung

Hallo!

Ich habe folgenden Code:

$emailmuster = "/[1]+@[a-zA-Z0-9-_.]+.[a-zA-Z]{2,4}$/";

elseif (preg_match($emailmuster, $_POST['email']) == 0) {
    $fehler = true;
    $fehlermeldung .= "Ihre E-Mail-Adresse ist ungültig!<br></br>\n";

Allerdings sind mittlerweile Umlaute in Internet-/Email-Adressen erlaub, oder? Wie füge ich die nun zu meinem emailmuster hinzu?

$emailmuster = "/[2]+@[a-zA-Z0-9-_.]+.[a-zA-Z]{2,4}$/";
oder
$emailmuster = "/[3]+@[a-zA-Z0-9-_.]+.[a-zA-Z]{2,4}$/";
oder sonst noch irgendwie ganz anders?

Vielen Dank im Vorraus!


  1. a-zA-Z0-9-_. ↩︎

  2. a-zA-Z0-9-_.äöüÄÖÜ ↩︎

  3. a-zA-Z0-9-_.ä-üÄ-Ü ↩︎

  1. Hallo valentintools.

    Ich habe folgenden Code:

    $emailmuster = "/[1]+@[a-zA-Z0-9-_.]+.[a-zA-Z]{2,4}$/";

    Was hast du gegen die .museum-TLD?

    elseif (preg_match($emailmuster, $_POST['email']) == 0) {
        $fehler = true;
        $fehlermeldung .= "Ihre E-Mail-Adresse ist ungültig!<br></br>\n";

    Was mit einer Adresse obiger TLD gelogen wäre …

    oder sonst noch irgendwie ganz anders?

    Ich bin für ganz anders. In meinen Augen ist dein regulärer Ausdruck schon viel zu restriktiv und schließt viele gültige E-Mail-Adressen aus.

    Meine persönliche Adressenüberprüfung beschränkt sich auf das Allernötigste:

    1. In der Adresse muss mindestens einen Punkt enthalten sein.
    2. Es muss genau ein „@“ vorkommen.
    3. Der letzte Punkt in der Adresse muss sich hinter dem „@“ befinden.

    Genutztes Werkzeug für 1. und 2.: substr_count, für 3.: strrpos.

    Alles andere ist in meinen Augen schon zuviel des Guten.

    Einen schönen Montag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]

    1. a-zA-Z0-9-_. ↩︎

    1. Was hast du gegen die .museum-TLD?

      Sry, was is das? :)

      In meinen Augen ist dein regulärer Ausdruck schon viel zu restriktiv und schließt viele gültige E-Mail-Adressen aus.

      Hm... also welche Adresse schließt das aus?
      Ich erwarte:

      x@x.x

      Einzigste Bedingung, das letzte x sind 2 bis 4 stellen (also de oder com oder info)

      und die beiden anderen x dürfen fast alles enthalten.
      vielleicht steh ich ja nur grad aufm schlauch. (wär ja nich das erste maöl :)
      könntest du mir bitte eine adresse sagen, die ich ausschließe? mir fällt da zur zeit nix ein...

      1. Hallo valentintools.

        Was hast du gegen die .museum-TLD?
        Sry, was is das? :)

        Die Top-Level-Domain „museum“. Hier ein Beispiel.

        In meinen Augen ist dein regulärer Ausdruck schon viel zu restriktiv und schließt viele gültige E-Mail-Adressen aus.
        Hm... also welche Adresse schließt das aus?

        Siehe oben.

        Ich erwarte:

        x@x.x

        Einzigste

        „Einzige“.

        Bedingung, das letzte x sind 2 bis 4 stellen (also de oder com oder info)

        Und was, wenn die TLD länger als vier Stellen lang ist? Zudem können sich in einer E-Mail-Adresse noch weitaus mehr Zeichen befinden, als dir bekannt sind.

        Einen schönen Montag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
        1. »»Zudem können sich in einer E-Mail-Adresse noch weitaus mehr Zeichen befinden, als dir bekannt sind.
          Echt? Oh! Was denn noch außer a-z, A-Z, 0-9, die Umlaute, der Unterstrich, der Bindestrich und der Punkt? (ich glaubs dir, ich bin nur neugierig :)

          1. Hallo

            »»Zudem können sich in einer E-Mail-Adresse noch weitaus mehr Zeichen befinden, als dir bekannt sind.
            Echt? Oh! Was denn noch außer a-z, A-Z, 0-9, die Umlaute, der Unterstrich, der Bindestrich und der Punkt? (ich glaubs dir, ich bin nur neugierig :)

            Buchstaben anderer Alphabete[1], oder glaubst du, nur deutsche Umlaute sind mit der Einführung der "Umlautdomains" abgedeckt?

            [1] Das könnten z.B. sein:

            • arabische ...
            • hebräische ...
            • chinesische ...
            • japanische ...
              ... Zeichen. Desweiteren gibt es noch eine Menge mehr Alphabete, die mit der Einführung der "Umlautdomains" in Domainnamen möglich wurden.

            Tschö, Auge

            --
            Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
            (Victor Hugo)
            Veranstaltungsdatenbank Vdb 0.1
            1. okay, ich habs jetzt so gemacht:

              "/^.@...$/"

              1. okay, ich habs jetzt so gemacht:

                "/^.@...$/"

                nee, sry
                so:
                "/^.+@.+..+$/"

      2. Hi,

        Einzigste Bedingung, das letzte x sind 2 bis 4 stellen (also de oder com oder info)

        Und was ist mit anderen TLDs? .museum wurde erwähnt, was ist mit .mobil? Und viel wichtiger, was ist mit TLDs, die es noch nicht gibt? Ein Script, das bewusst zukünftige Entwicklungen begrenzt, ist IMHO eine völlige Fehlplanung.

  2. Hallo.

    Die Syntaxprüfung der Mailadresse könnte auch entfallen, wenn Du die Existenz der Adresse direkt prüfst. Siehe hierzu </archiv/2006/6/t132121/#m855096> (wobei Step 2 dann zu überspringen wäre).

    Grüße aus Würzburg
    Julian