Abfrage ob gültige eMail Adresse eingegeben wurde

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

  • Abfrage ob gültige eMail Adresse eingegeben wurde

    Hallo ihrz nochmal.

    Da mir bei meinem ersten Problem so gut geholfen wurde, wende ich mich hier erneut an euch.

    Wie gesagt habe ich mir ein kleines Kontaktformular gebastelt. Mein Formular überprüft allerdings nur, ob auch alle Fehlder ausgefüllt wurden, nicht aber ob die eMail Adresse auch gültig ist, sprich irgendwas@irgendwasanderes.de ist, die kann also auch ohne das @ Zeichen geschrieben werden. Ist ja an sich nicht weiter tragisch, sieht nur scheiße aus ;-)

    Wie kann ich mein Formular dahingehend anpassen, das es abfragt ob die eMail Adresse auch eine gültige eMail Adresse ist?

    Hier der Source-Code

    PHP Code:
    <script type="text/javascript" language="JavaScript">
    var flag = 0;

    function clear_kommentar() {

    if(flag == 0)
    document.mail.kommentar.value = '';
    flag = 1;
    }
    </script>

    <?php
    _______________________________________________
    if ($submit)
    {
     if (
    $betreff=="" || $name=="" || $vorname=="" || $email=="" || $kommentar=="")
     {
     include(
    "fehlermeldung.htm"); // include kann auch durch echo $nacricht_NOK 
    ersetzt werden falls keine extra html fehlerseite vorhanden
     
    exit();
    }
    else
    {
     echo 
    "<span style=\"font-family: Arial ;font-size: 
    15px; font-weight: bold; color: #330099;\"> 
    $nachricht_OK";
     
    mail("$emailadresse","$betreff"
    "Betreff:\t $betreff\nName:\t\t $name\nVorname:\t 
    $vorname\nE-Mail:\t\t $email\nKommentar:\t $kommentar,\n\n\n$REMOTE_ADDR
    \n
    $REMOTE_HOST\n
    $HTTP_USER_AGENT","From: $email");
     exit();
     }
    }
    ?>
    Last edited by RookieXL2; 01-06-2005, 17:11.

  • #3
    Ich hab jetzt mal unter http://www.weberdev.com/get_example.php3?count=536 eine solche email Abfrage gefunden, wie binde ich die in mein script ein?

    PS. Ist der obige Beitrag so in Ordnung?

    Comment


    • #4
      so ist ok.

      das ist bei weitem nicht die optimalste methode, such lieber nach einem dir passenden regex (erkennst du an der preg_match()-funktion).

      Comment


      • #5
        Gut, ich hab mich nochmal auf die Suche gemacht, und unter http://www.spoono.com/php/tutorials/tutorial.php?id=41 eine einfachere Abfrage gefunden.

        Den oberen Code Teil einzufügen ist ja kein Problem, wie löse ich das denn mit der Abfrage?

        An welcher Stelle muss ich wie die Abfrage einbinden?

        Das Problem hat sich erledigt, hab die Abfrage folgendermaßen eingebaut :



        Abfrage
        PHP Code:
        if ($submit)

        {
         if (
        $betreff=="" || $name=="" || $vorname=="" || $email=="" 
        || $kommentar=="" || checkEmail($email) == FALSE)
         {
         include(
        "fehlermeldung.htm");
         exit();

        Last edited by RookieXL2; 01-06-2005, 15:32.

        Comment


        • #6
          Wann bitte gedenkst du deinen Code umzubrechen?

          Comment


          • #7
            im grunde ganz gut, nur wird so eine mailadresse abgelehnt:
            Code:
            vorname.nachname@example.com

            Comment


            • #8
              Penizillin

              Das kann ich so nicht bestätigen.

              Habs getestet mit
              PHP Code:
              christian.hinnberg@aol.com (fiktive Addresse
              und das Script hat die Addy nicht beanstandet. Liegt aber nicht daran das das Script überhaupt nichts beanstandet, weil tutut wurde als Addy abgelehnt tutut.tutut@aol wurde auch abgelehnt und wenn der angegebene Host sich über Port 25 nicht erreichen läßt, wird die eMail auch abgelehnt.

              Greetz Rook

              EDIT:
              tutut.tutut.tutut@gmx.de wird auch akzeptiert
              Last edited by RookieXL2; 01-06-2005, 16:29.

              Comment


              • #9
                es kann sein, dass ich mich irre, aber wenn die überprüfung auf diesem code basiert:
                Code:
                if(eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email))
                kann ich mir nicht vorstellen, dass ein punkt vor dem '@'-symbol akzeptiert wird.

                des weiteren müsste (in meiner vorstellung) eine mailadresse, die mit einem punkt oder minus endet, auch akzeptiert werden.

                wenn du den code 1:1 übernimmst, korrigiere die fehler des autors: aus
                PHP Code:
                checkEmail(johndoe@example.com
                wird
                PHP Code:
                checkEmail('johndoe@example.com'
                und was ich gar nicht verstehe, ist, warum ein nach dem @-symbol angegebener host auf dem 25 port reagieren soll. diese überprüfung macht den code nicht sinnvoller.

                Comment


                • #10
                  Original geschrieben von penizillin
                  des weiteren müsste (in meiner vorstellung) eine mailadresse, die mit einem punkt oder minus endet, auch akzeptiert werden.
                  noch besser:

                  "john doe"@example.com
                  ist ebenfalls eine gültige emailadresse ... :-)
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Comment


                  • #11
                    @penizillin

                    1 zu 1 ist der Code nicht übernommen, den
                    PHP Code:
                    checkEmail(johndoe@example.com
                    hab ich ja mit
                    PHP Code:
                    checkEmail($email
                    ersetzt.

                    Die Abfrage über Port 25 ist *vermute ich mal* dazu gedacht, damit du nicht als "gültige" eMail Adresse ich@habdieschautzevollvondersuchenacheinerkurzenurl.de nehmen kannst, der Host muss also tatsächlich existieren, wie z.B. gmx oder firemail oder was weiß ich.

                    Eine Adresse die mit einem Punkt oder einem Minus endet wird leider akzeptiert.

                    Das Problem mit den Anführungsstrichen und den leerzeichen ist natürlich auch nicht von der Bratwurst zu weisen.

                    Irgendwelche Vorschläge?

                    Comment


                    • #12
                      Original geschrieben von RookieXL2
                      Irgendwelche Vorschläge?
                      Ja, befolge JETZT die Regeln, ansonsten ist der Thread bald dicht.

                      http://www.php-resource.de/forum/sho...threadid=50454

                      Comment


                      • #13
                        Original geschrieben von RookieXL2
                        Irgendwelche Vorschläge?
                        ja - auf so unnötigen aufwand komplett verzichten.

                        wer dir keine existierende emailadresse angeben will, wird das immer schaffen - auch eine nicht existente oder die des bundeskanzlers sind syntaktisch korrekt und in letzterem falle sogar die domain/der mailserver idR. erreichbar. und, was hätte deine feine überprüfung in so einem falle für einen gewinn gebracht? exakt 0,0.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Comment


                        • #14
                          1. in meiner ersten antwort gibts einen link zu einer regexp-datenbank mit erklärungen und beispielen. auch die forumsuche ist da sehr hilfreich.

                          2.
                          der Host muss also tatsächlich existieren, [...]
                          ...aber nicht unbedingt auf dem 25. port lauschen. genau so wenig muss er auf dem 80. oder 81. erreichbar sein oder gar auf pings antworten. diese überprüfung an sich ist sinnfrei.

                          Comment


                          • #15
                            Tobiaz : Welche Regel befolge ich denn nicht?

                            Penizillin : Die sinnfreie Port 25 Abfrage stammt ja nicht aus meiner Feder, ob die sinnig oder unsinnig ist, ist mir relativ rille, die ist im Code drin und ich hab se übernommen. Natürlich werden es Leute schaffen, mir, wenn sie wollen, eine falsche eMail-Adresse zu übermitteln dies auch tun, es geht in erster Linie auch nur darum, eventuelle Tippfehler von Benutzern oder Leuten die sich mit den Richtlinien einer gültigen eMail Adresse nicht auskennen, so Freizeit Internet User die vielleicht einmal alle 6 monate im Netz ein bischen rumsurfen und sonst nichts damit zu tun haben und denken "sunnymaus@gmx" ist eine gültige email Adresse ihre dann da rein tippen und ich, bzw jemand der das Script dann verwendet, nur schwachsinnige eMail Adressen erhält.

                            Weil was nützt es einem Firmenkunden, wenn über das Kontaktformular eine Bestellung, o.ä. verschickt wird, eine bestätigung via eMail raus soll und keine rein vom Syntax her gesehene korrekte eMail Adresse verfügbar ist?

                            Es geht hier nicht um Sinn oder Unsinn, sondern um Funktion des ganzen. Ich frage ja auch nicht nach dem Sinn von einem hüpfenden Smilie mit Kappe aufm Kopf und Fluppe im Mund in einem PHP-Developer Forum.

                            Greetz Rook

                            Comment

                            Working...
                            X