preg_match negieren

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

  • preg_match negieren

    Hallo zusammen,

    wie kann ich eine Email adress überprüfen, ob sie nicht der überprüfung entspricht. Sinn ist der, das überprüft werden soll, ob die Adresse nicht valide ist. Bisher habe ich folgendes, was aber nicht richtig klappt:

    PHP Code:
    if (!preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" $email)) {
                        echo 
    "Bitte eine gültige Mailadresse angeben!<br>\n";
                        echo 
    "<a href='$url'>Zurück zum Gästebuch</a>";
                    } else { echo 
    "Valide Mail"; } 
    Hier ist der fehler, das egal ob ich eine gültige oder ungültige adresse eingebe immer die mitteilung kommt "Bitte eine gültige Mailadresse angeben!". Kann ich so nicht überprüfen ob der sting nicht der prüfung entspricht?

    gruß
    christoph

  • #2
    Hallo,

    so sollte es funktionieren:

    PHP Code:
    <?php
    $email 
    'test@testd.dde';
    $reg = array();
    if(
    preg_match('#[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:arpa|root|aero|asia|
    biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|
    org|pro|tel|travel|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw
    |ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz
    |ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do
    |dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi
    |gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im
    |in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb
    |lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp
    |mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np
    |nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re
    |ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su
    |sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug
    |uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)#i'
    $email$reg))
    {
        echo 
    'Korrekte E-Mail!';
    }
    else
    {
        echo 
    'Falsche E-Mail!';    
    }
    ?>
    EDIT:
    zeilenumbrüche gesponsort von kropff
    Last edited by Kropff; 31-03-2008, 19:28.
    Herrmann Web develoment

    Comment


    • #3
      Danke schon mal aber so weis ich das es klappt. Ich müsste es aber so haben, das überprüft wird, ob die mail adresse nicht stimmt.

      in diesem fall wird nämlich die besagte meldung ausgegeben und sonst läuft die Überprüfung weiter.

      wenn ich es so mache wie du sagtest wird es etwas kompliziert.

      Comment


      • #4
        sorry so siehst besser aus

        PHP Code:
        <?php
        $email 
        'test@testd.xde';
        $reg = array();
        if(!
        preg_match(
        '#[A-Z0-9._%+-]+@[A-Z0-9.-]+\.'
        .'(?:arpa|root|aero|asia|biz|cat|com|coop|edu|gov|info|'
        .'int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|'
        .'ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|'
        .'ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs| bt|bv|bw|by|'
        .'bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|'
        .'de|dj|dk|dm|do|dz|ec|ee|eg|er|e s|et|eu|fi|fj|fk|fm|fo|fr|'
        .'ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk'
        .'|hm|hn|hr|ht|hu |id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|'
        .'ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|'
        .'lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu'
        .'|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|n p|nr|nu|nz|om|pa|'
        .'pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|'
        .'sb|sc|sd|se|sg|sh|si|sj |sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc'
        .'|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um'
        .'|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$#i'$email$reg))
        {
            echo 
        'Falsche E-Mail!';
        }
        else
        {
            echo 
        'Korrekte E-Mail!';    
        }
        ?>
        Last edited by mazeh22; 31-03-2008, 19:20.
        Herrmann Web develoment

        Comment


        • #5
          UMBRECHEN! CODE!
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Comment


          • #6
            was bewirkt denn eigentlich das mit dem array noch extra?

            ich habs jetzt so, klappt aber nicht:

            PHP Code:
            $email $_POST['email'];

                if (!
            $_COOKIE[chickystyle]) {
                        if (
            $bname == "" || $email == "" || $content == "" || $content == "Hier Nachricht eintragen!") {
                            echo 
            "Bitte alle Pflichtfelder ausfüllen!<br>\n";
                            echo 
            "<a href='$url'>Zurück zum Gästebuch</a>";
                        } else {
                            
            $reg = array();
                            if (!
            preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" $email$reg)) {
                                echo 
            "Bitte eine gültige Mailadresse angeben!<br>\n";
                                echo 
            "<a href='$url'>Zurück zum Gästebuch</a>";
                            } else { 
            /*weiter gehts*/

            Last edited by nevermind; 31-03-2008, 19:15.

            Comment


            • #7
              ja war ein fehler drin

              so sollte es gehen

              PHP Code:
              <?php
              $email 
              'test@testd.xde';
              $reg = array();
              if(!
              preg_match(
              '#[A-Z0-9._%+-]+@[A-Z0-9.-]+\.'
              .'(?:arpa|root|aero|asia|biz|cat|com|coop|edu|gov|info|'
              .'int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|'
              .'ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|'
              .'ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs| bt|bv|bw|by|'
              .'bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|'
              .'de|dj|dk|dm|do|dz|ec|ee|eg|er|e s|et|eu|fi|fj|fk|fm|fo|fr|'
              .'ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk'
              .'|hm|hn|hr|ht|hu |id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|'
              .'ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|'
              .'lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu'
              .'|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|n p|nr|nu|nz|om|pa|'
              .'pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|'
              .'sb|sc|sd|se|sg|sh|si|sj |sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc'
              .'|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um'
              .'|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$#i'$email$reg))
              {
                  echo 
              'Falsche E-Mail!';
              }
              else
              {
                  echo 
              'Korrekte E-Mail!';    
              }
              ?>
              Herrmann Web develoment

              Comment


              • #8
                wo war der fehler?

                Comment


                • #9
                  UMBRECHEN! CODE!
                  Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                  Comment


                  • #10
                    Original geschrieben von tontechniker
                    OffTopic:
                    was hast du denn für eine auflösung?


                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Comment


                    • #11
                      Original geschrieben von Kropff
                      OffTopic:
                      was hast du denn für eine auflösung?


                      peter
                      OffTopic:
                      also ich hab hier 1280*800 und muss trotzdem noch scrollen :/
                      Freedom is a state of mind. Not a state in which we live.

                      troxdev.ch | animefieber

                      Comment


                      • #12
                        OffTopic:
                        was hast du denn für eine auflösung?
                        War etwas spät, tut mir leid. Das mit dem Tabs aktualisieren sollte man öfter mal beherzigen (Um auf die Frage zu antworten 1920x1200, deine Umbrüche reichen dicke aus.)
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Comment

                        Working...
                        X