email check

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

  • email check

    ich habe schon mehrere beiträge in diesem forum gelesen, mehrere probiert, aber irgendwie habe ich es nicht geschafft den code richtig anzupassen.
    PHP-Code:
    if(@$Email != eregi
    ("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@
    ([0-9a-z][0-9a-z-]*[0-9a-z]\.)+[a-z]{2,4}$"
    ,@$Email))
    {
    $fehler 1;
    $fehlermeldung .= "<tr>
    <td style=\"padding-left:20px;\">
    Die E-Mail Adresse ist ung&uuml;ltig!
    </td></tr>"
    ;

    leider kommt die fehlermeldung auch bei einer richtigen adresse.
    vielleicht kann mir jemand einen tipp geben oder mich in die nähe eines tipps bringen

    danke

  • #2
    PHP-Code:
    return preg_match ("/^[0-9a-z]([-_.]?[0-9a-z])*@[a-z0-9-]+.([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|shop)$/i",$email); 
    Hat übrigens eine Suche in diesem Forum ausgespuckt.
    Musst es halt nurnoch anpassen, wenn du dein eregi benutzen willst

    Kommentar


    • #3
      PHP-Code:
      if(@$Email != 
      eregi
      ("/^[0-9a-z]([-_.]?[0-9a-z])*@[a-z0-9-]+.([a-z]{2}
      |aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|shop)
      $/i"
      ,@$Email))
      {
      fehlermeldung ausgeben

      funktioniert nicht. ich nehme mal an, dass ich da irgendwie einen hund eingebaut habe.
      wie baue ich denn das mit return preg_match ein?

      Kommentar


      • #4
        1. Kann ich nicht erkennen, dass du es auf ereg umgeschrieben hast.
        2. Ist preg mit sicherheit besser geegnet.
        3. Wie preg genutzt wird, steht im Manual.

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          1. Kann ich nicht erkennen, dass du es auf ereg umgeschrieben hast.
          2. Ist preg mit sicherheit besser geegnet.
          3. Wie preg genutzt wird, steht im Manual.
          4. ist das auch überflüssig -> (@$Email != eregi(...
          5. das Wunder von php-resource
          mfg
          marc75

          <Platz für anderes>

          Kommentar


          • #6
            ja. ok. das war einfach irgendwas?!

            ich glaub jetzt funktioniert es.
            hier der code falls jemand so ein ähnliches problem hat:
            PHP-Code:
            if (!preg_match
            ("/^[0-9a-z]([-_.]?[0-9a-z])*@[a-z0-9-]+.([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|shop)
            $/i"
            ,@$Email))
            {
            $fehler 1;
            $fehlermeldung .= "<tr><td style=\"padding-left:20px;\">
            Die E-Mail Adresse ist ung&uuml;ltig!
            </td></tr>"
            ;

            trotzdem danke

            Kommentar


            • #7
              was versuchst du mit den @s zu bewirken. die solltest du nur einsetzten, wenn es wirklich gewollt ist, und der fehler anderweitig ausgewertet wird.

              Kommentar


              • #8
                PHP-Code:
                function isEmail($email
                    {
                        
                $bool false;
                        
                $legalEmail "/^[a-z0-9-_]([-_\.]?[a-z0-9-_])*@[0-9a-zA-Z][-_\.0-9a-z]*\.[a-z]{2,4}[.]?$/i";

                        if (
                preg_match($legalEmail$email))
                        {
                            
                $addr trim($email);
                            list(
                $user$host) = explode("@"$addr);
                            
                $bool getmxrr($host$arr);
                        }    
                        return 
                $bool;
                    } 
                Nimm die Funktion. Durch getmxrr() ist abfrage nach den TPL`s unötig.

                cheers
                Zuletzt geändert von schlimmerfinger; 09.06.2004, 11:27.
                Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                PHP Sicherheit
                PHPUnit[1-2]
                Professionelle Softwareentwicklung mit PHP 5
                Professionelle PHP 5-Programmierung

                Kommentar


                • #9
                  Hallo zusammen

                  Nimm die Funktion. Durch getmxrr() ist abfrage nach den TPL`s unötig.
                  Damit kriegst du aber nur raus, ob ein MX-Eintrag zur Domain existiert.
                  Du weisst aber noch nicht ob die angegebene Adresse korrekt ist.

                  Ich habe bei meiner Seite (im Reg Script) erst die Prüfung, ob die Adresse korrekt sein KANN (mit preg match funzt das wunderbar).
                  Dann, wenn die erste Prüfung erfolgreich war, ermittle ich mittels getmxrr() den/die zuständigen Mailserver und baue eine Socketverbindung auf.
                  Das Script versucht nun eine Email an die angegebene Adresse zu versenden und prüft die Serverantwort auf ^250 (d.h. User existiert).

                  Der Schwachpunkt wäre jetzt noch, dass der Mailserver als Blackhole konfiguriert sein könnte
                  (d.h. akzeptiert auch mails für nicht lokale Benutzer) oder gar ein Spamserver ist, dem eh egal ist was reinkommt.

                  Daher kannst du die Abfrage wiederholen, diesmal aber mit einer Email Adresse, die bestimmt nicht existiert
                  (z.B. thisisneverEVERinthewholeUniverseAco...ess@domain.com).
                  Wenn der Server dann trotzdem mit ^250 antwortet, dann kannst du email adressen von diesem Server für die Registrierung verbieten.

                  Zum Schluss verschickst du eine mail an die geprüfte Adresse mit einem Aktivierungslink.

                  Gruss

                  tobi
                  Zuletzt geändert von jahlives; 23.09.2004, 03:28.
                  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)

                  Kommentar


                  • #10
                    1. wieso kramst du sowas altes raus? meinste der gute braucht jetzt noch eine Antwort zu seiner Frage?

                    2. Ist die Prüfung ob das Emailkonto existiert nicht sicher, daher reicht es nach einem Syntax Check eine Email mit Freischaltungscode hinzuschicken, alles Einträge die nach X Tagen nicht freigeschalten wurden, werden wieder gelöscht.
                    mfg
                    marc75

                    <Platz für anderes>

                    Kommentar

                    Lädt...
                    X