kostenloser Webspace werbefrei: lima-city


Gültigkeit von Mailadressen prüfen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    xtreme

    Kostenloser Webspace von xtreme

    xtreme hat kostenlosen Webspace.

    Hallo wir brauchen so ein Script was die Gültigkeit von Mailadressen prüfen ?

    wo bekomme ich so was könnte mir eventuel jemand dabei helfen ?
    giebt es denn überhaubt so was ?


    Besten danke schon mal !
    lg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi

    Schau mal hier vorbei http://articles.sitepoint.com/article/users-email-address-php

    Falls du sie Validieren willst, schau dir das an http://www.tutorials.de/php-tutorials/306797-email-adressen-effektiv-validieren.html

    Für die Validierung benutze ich hauptsächlich JQuery - Form-Plugin / Validation-Plugin.

    Grüsse
  4. <?php
    $email = "someone@example.com";
    
    if(!filter_var($email, FILTER_VALIDATE_EMAIL))
      {
      echo "E-mail is not valid";
      }
    else
      {
      echo "E-mail is valid";
      }
    ?>


    Einfacher und besser gehts nicht. Ansonsten hätt ich noch anzubieten:

    function check_email_address($email)
    {
       $isValid = true;
       $atIndex = strrpos($email, "@");
       if (is_bool($atIndex) && !$atIndex)
       {
          $isValid = false;
       }
       else
       {
          $domain = substr($email, $atIndex+1);
          $local = substr($email, 0, $atIndex);
          $localLen = strlen($local);
          $domainLen = strlen($domain);
          if ($localLen < 1 || $localLen > 64)
          {
             // local part length exceeded
             $isValid = false;
          }
          else if ($domainLen < 1 || $domainLen > 255)
          {
             // domain part length exceeded
             $isValid = false;
          }
          else if ($local[0] == '.' || $local[$localLen-1] == '.')
          {
             // local part starts or ends with '.'
             $isValid = false;
          }
          else if (preg_match('/\\.\\./', $local))
          {
             // local part has two consecutive dots
             $isValid = false;
          }
          else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
          {
             // character not valid in domain part
             $isValid = false;
          }
          else if (preg_match('/\\.\\./', $domain))
          {
             // domain part has two consecutive dots
             $isValid = false;
          }
          else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',
                     str_replace("\\\\","",$local)))
          {
             // character not valid in local part unless 
             // local part is quoted
             if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\","",$local)))
             {
                $isValid = false;
             }
          }
          if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
          {
             // domain not found in DNS
             $isValid = false;
          }
       }
       return $isValid;
    }


    Beitrag zuletzt geändert: 11.1.2011 13:08:46 von fabo
  5. webdesignerin

    Kostenloser Webspace von webdesignerin

    webdesignerin hat kostenlosen Webspace.

    fabo schrieb:
    <?php
    $email = "someone@example.com";
    
    if(!filter_var($email, FILTER_VALIDATE_EMAIL))
      {
      echo "E-mail is not valid";
      }
    else
      {
      echo "E-mail is valid";
      }
    ?>


    Eine Rückfrage dazu meinerseits: Wo muss der von Dir oben genannte Code hin - direkt in das HTML/PHP Formular oder in die form.php (also die Datei, welche das Formular nach einem Klick auf den Button "Absenden" verschickt)?


    Gruß,
    webdesignerin :angel:

    Beitrag zuletzt geändert: 11.1.2011 18:15:41 von webdesignerin
  6. In die form.php, da dort ja deine Formular Eingaben bearbeitet werden ;)

    Grüße,

    Joseph
  7. r**n

    All dass was meine Vorredner vorgeschlagen haben zeigt ausschließlich auf wie man überprüft ob überhaupt eine E-Mail Adresse eingegeben wurde und kein anderer Quark.
    So wie ich es aber verstanden habe möchtest du hingegen überprüfen ob es diese Mail Adresse gibt.
    Das ist nicht möglich, das höchste was wohl möglich wäre, wäre per Ping auf die angegeben Domain zu prüfen ob die Seite an die die Mail geschickt wird existiert.
    So würde der Script bspw. asdasd@askdj.de als ungültig anzeigen da er beim anpingen der Domain askdj.de den (gesetzten) Timeout überschreitet.

    Gruß
  8. Anknüpfend an ra1ns Beitrag: Du kannst das Validieren von Emails in drei Schritte einteilen:
    1. Syntaktische Validierung: Prüfen, dass die Email gewisse Anforderungen erfüllt. Dabei solltest du eher mehr Mails zulassen als weniger. Es gibt nichts ärgerlicheres als seine Email "+@example.org" einzugeben und gesagt zu bekommen, dass eine Email kein "+" enthalten darf (was nämlich Schwachsinn ist.) Die Prüfung kannst du mit filter_var machen (siehe fabo).
    2. Validierung der Domain: Anschließend extrahierst du die Domain aus der Email (alles hinter dem letzten @) und machst ein `checkdnsrr`. Dabei macht PHP ein DNS-Lookup für die Domain und prüft, ob es überhaupt einen MX-Record gibt. Damit kannst du einige Spam-Mails schonmal aussortieren.
    3. Validierung der Existenz: Wenn du wirklich sicher prüfen willst, dass die Email existiert kommst du nicht drumrum eine Bestätigungsemail zu schicken. D.h. du schickst eine Nachricht an die Email mit einem uniquen Link. Wenn dieser geklickt wird, gelte die Email als bestätigt. Auch das stellt natürlich nicht sicher, dass du eine echte Email bekommst. Wenn jemand `blabla@trash-mail.com` als Email angibt, dann kann er diese über Trashmail auch bestätigen - es ist aber immernoch nicht seine echte Email. Dagegen kannst du dich nicht wirklich schützen. Du kannst vielleicht eine Blacklist mit bekannten Trash-Mail-Providern erstellen, aber wirklich schützen kannst du dich dagegen nicht.

    Ich belasse es normalerweise bei den ersten zwei Schritten. Für einen kleinen Dienst mit etwa 25000 Besuchern/Tag kommt da nur mäßig Spam an. Viele Leute geben ihre echte Email schon an, alleine weil sie glauben, dass sie eine Aktivierungsmail bekommen.
  9. theblackdragon

    theblackdragon hat kostenlosen Webspace.

    Mit diesen Lösungsansätzen könnt ihr nur feststellen ob es eine EMail ist, aber nicht ob es diese EMail gibt. Dies ist aus Datenschutzgründen nicht möglich. Ich und ein Freund haben schon einmal probiert eine Datenbank aller EMail Adressen dieser Welt zu machen, aber dies ist wegen dem nicht vorhandenen Rückgabewert zurück. Das heißt er schickt sie an eine x-beliebige Email, aber man weiß nicht ob sie angekommen ist.
  10. webdesignerin

    Kostenloser Webspace von webdesignerin

    webdesignerin hat kostenlosen Webspace.

    virtual2 schrieb:
    In die form.php, da dort ja deine Formular Eingaben bearbeitet werden ;)


    Das geht bei mir irgendwie nicht! :frown:

    Ich habe versucht, den Code des Tutorials von glitzerglas (http://www.tutorials.de/php-tutorials/306797-email-adressen-effektiv-validieren.html) mit dem lima eigenen Tutorial für ein Kontaktformular zu verbinden, aber das will nicht so recht. Vielleicht liegt es auch daran, dass ich mir nicht ganz sicher bin wo welcher PHP Code hin muss - also welcher Teil ins Formular und welcher Teil in die form.php. Könnt ihr mir dabei bitte helfen? Danke!


    Gruß,
    webdesignerin :angel:
  11. Poste doch mal deinen Quellcode der form.php und dann können wir dir das auch ein wenig präziser sagen ;)
  12. webdesignerin

    Kostenloser Webspace von webdesignerin

    webdesignerin hat kostenlosen Webspace.

    nilswerner88 schrieb:
    Poste doch mal deinen Quellcode der form.php und dann können wir dir das auch ein wenig präziser sagen ;)


    Ich sagte doch bereits, dass ich ich als Vorlage ein lima-city Tutorial habe: http://www.lima-city.de/tutorials/kontaktformular :wink:

    Anders sieht meine form.php auch nicht aus - ich möchte einfach wissen, wie man beide von mir genannten Tutorials bzw. form.php verbindet.


    Gruß,
    webdesignerin :angel:
  13. Im Prinzip direkt hier oben:
    $fehler = "";
    $nz = chr(13).chr(10);
    $name = $_POST['name'];
    $adresse = $_POST['adresse'];
    $nachricht = $_POST['nachricht'];
    $email= $_POST['email'];
    if (empty($name)) $fehler .= "<li>der Absendername fehlt</li>";
    if (empty($adresse)) $fehler .= "<li>die Absenderadresse fehlt</li>";
    if (empty($nachricht)) $fehler .= "<li>keine Nachricht eingetragen wurde</li>";
    if(empty($email) OR !filter_var($email, FILTER_VALIDATE_EMAIL)){
    $fehler .= '<li>email nicht korrekt</li>'
    }

    ist zwar nicht das sauberste aber es sollte funktionieren ;)
  14. webdesignerin

    Kostenloser Webspace von webdesignerin

    webdesignerin hat kostenlosen Webspace.

    Hallo! :wave:

    Ist
    $email= $_POST['email'];
    und
    $adresse = $_POST['adresse'];
    nicht dasselbe? :wink:


    Gruß,
    webdesignerin :angel:
  15. Ich weiß nicht im Einzellnen wie das bei dir ausschaut ;) ich hätte jetzt unter Adresse eher eine Anschrift erwartet und keine E-Mail Adresse ;) es ging eigentlich auch nur ums Prinzip ;)
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!