preg_match negieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    Zuletzt geändert von Kropff; 31.03.2008, 20:28.
    Herrmann Web develoment

    Kommentar


    • #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.

      Kommentar


      • #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!';    
        }
        ?>
        Zuletzt geändert von mazeh22; 31.03.2008, 20:20.
        Herrmann Web develoment

        Kommentar


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

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #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*/

            Zuletzt geändert von nevermind; 31.03.2008, 20:15.

            Kommentar


            • #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

              Kommentar


              • #8
                wo war der fehler?

                Kommentar


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

                  Kommentar


                  • #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

                    Kommentar


                    • #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

                      Kommentar


                      • #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]

                        Kommentar

                        Lädt...
                        X