Andy: string nach @ Zeichen durchsuchen

Hallo,
ich bekomme den Wert eines Input Feldes auf eine Seite und möchte
dort überprüfen ob dieser Wert ein @ enthält, damit ich weiß ob es
sich um eine e-mail adresse handelt oder nicht.

weis jemand eine möglichkeit dies zu realisieren?

Danke!

Gruß, Andy

  1. Hallo,

    weis jemand eine möglichkeit dies zu realisieren?

    if ($email != "" AND !preg_match("/[1]+@.+.\D{2,5}$/", $email)) {
     $errors[] = "die E-Mail-Adresse sieht nicht richtig aus";
    }

    Ich habe es mir irgendwann so von irgendwo angeeignet und es funktioniert bei mir, vielleicht hilft es dir.

    Grüße
    Jeena Paradies

    --
    Obstsalat für jedermann
    http://jeenaparadies.de/weblog/2004/august/obstsalat/
    Kinder schlagen zu Erziehungszwecken ist in Deutschland verboten!
    http://jeenaparadies.de/artikel/kinderschlagen/
    Jeenas Bannertauschportal; selbstgemacht ;-)
    http://jeenasbannerbude.de

    1. ^@ ↩︎

    1. Hi,

      if ($email != "" AND !preg_match("/[1]+@.+.\D{2,5}$/", $email)) {
      $errors[] = "die E-Mail-Adresse sieht nicht richtig aus";

      Das passiert bei Verwendung dieses Ausdrucks aber auch bei korrekten Mail-Adressen. Es gibt mindestens eine TLD mit mehr als 5 Zeichen.

      cu,
      Andreas

      --
      MudGuard? Siehe http://www.Mud-Guard.de/
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.

      1. ^@ ↩︎

    2. Hallo,

      weis jemand eine möglichkeit dies zu realisieren?

      if ($email != "" AND !preg_match("/[1]+@.+.\D{2,5}$/", $email)) {
       $errors[] = "die E-Mail-Adresse sieht nicht richtig aus";
      }

      Ich habe es mir irgendwann so von irgendwo angeeignet und es funktioniert bei mir, vielleicht hilft es dir.

      ich hab mir irgendwann mal das zusammengeschustert ;-)

      _EMAILDOPPELT = damit wird überprüft, ob die eMail schon in der DB eingetragen ist
      _EMAILCHECK = damit wird geprüft, ob der Syntax richtig ist
      _EMAILPING = damit wird geprüft, ob die Domain ein Ping zurück gibt

      die Werte kann ich in meiner Config Datei entweder auf true oder false setzen..

      function _emailCheck($eMail){
        global $language;
        $check[0] = false;
        if(empty($eMail)){
          $check[0] = true;
          $check[1][] = $language['LANG_REGISTER_FEHLER_EMAIL1'];
        }
        else{
          if (_EMAILDOPPELT){
            $row = _db_select('_id', 'auth', '_email', $eMail);
            if($row){
              $check[0] = true;
              $check[1][] = $language['LANG_REGISTER_FEHLER_EMAIL2'];
            }
          }
          if (_EMAILCHECK){
            if (!eregi('^([a-z0-9.\_-]+)@([a-zäöü0-9.-]+.[a-z]{2,})$', $eMail)){
              $check[0] = true;
              $check[1][] = $language['LANG_REGISTER_FEHLER_EMAIL3'];
            }
          }
          if (_EMAILPING && !$check[0]){
            require ('Net/Ping.php');
            $domain = strstr($eMail, '@');
            $domain = substr($domain, 1);
            $ping = Net_Ping::factory();
            if(!PEAR::isError($ping)){
              $ping->setArgs(array('count' => 1));
              $result = $ping->ping($domain);
              if (isset($result->message)){
                $check[0] = true;
                $check[1][] = _textReplace($language['LANG_REGISTER_FEHLER_EMAIL4'], array($domain));
              }
            }
          }
        }
        return $check;
      }


      1. ^@ ↩︎

      1. hi,

        _EMAILPING = damit wird geprüft, ob die Domain ein Ping zurück gibt

        du möchtest doch wohl nicht meine emailadresse als ungültig abtun, nur weil du meine domain zeitweise mal nicht anpingen kannst?

        das könnte ja verschiedenste ursachen haben ...

        • temporär auf meinem server kein dienst verfügbar, der auf deinen ping antworten könnte
        • verbindung von deinem server zu meinem (temporär) nicht möglich
        • etc.

        daraus schlüsse über die existenz meiner mailadresse ziehen zu wollen, wäre unfug.

        gruß,
        wahsaga

        --
        I'll try being nicer if you'll try being smarter.
        1. Hi,

          _EMAILPING = damit wird geprüft, ob die Domain ein Ping zurück gibt
          du möchtest doch wohl nicht meine emailadresse als ungültig abtun, nur weil du meine domain zeitweise mal nicht anpingen kannst?

          Ach, bei einem Support-Anfrage-Formular bei einem Provider käm das doch gut: ;-)

          "Hilfe, mein Webserver www.example.org ist nicht mehr erreichbar! mailto:ich@www.example.org"

          wird dann beantwortet mit:

          "Wir können Ihre Anfrage nicht entgegennehmen, weil Ihr Webserver nicht erreichbar ist." ;-)

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.Mud-Guard.de/
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. Hallo,

            _EMAILPING = damit wird geprüft, ob die Domain ein Ping zurück gibt
            du möchtest doch wohl nicht meine emailadresse als ungültig abtun, nur weil du meine domain zeitweise mal nicht anpingen kannst?

            Ach, bei einem Support-Anfrage-Formular bei einem Provider käm das doch gut: ;-)

            "Hilfe, mein Webserver www.example.org ist nicht mehr erreichbar! mailto:ich@www.example.org"

            wird dann beantwortet mit:

            "Wir können Ihre Anfrage nicht entgegennehmen, weil Ihr Webserver nicht erreichbar ist." ;-)

            wie soll man denn auch den kleinen denn eine eMail schicken, wenn sein Server nicht erreichbar ist?

            um Registrierungsinformationen zu schicken, sollte der Server schon on sein *g*

            man muss das ja auch nicht aktivieren, dafür gibt es ja true/false :-P

            1. hi,

              wie soll man denn auch den kleinen denn eine eMail schicken, wenn sein Server nicht erreichbar ist?

              ein server kann ja auch _temporär_ nicht erreichbar sein.

              um Registrierungsinformationen zu schicken, sollte der Server schon on sein *g*

              wie gesagt, wenn der server mal temporär nicht erreichbar ist, ist die mail deshalb ja nicht sofort unzustellbar.

              die mail zuzustellen, wird über einen gewissen zeitraum hin mehrmals versucht - also bitte nicht aus "ping geht zum zeitpunkt xy nicht" nicht auf "mail kann nicht zugestellt werden" schließen.

              gruß,
              wahsaga

              --
              I'll try being nicer if you'll try being smarter.
  2. hi,

    ich bekomme den Wert eines Input Feldes auf eine Seite und möchte
    dort überprüfen ob dieser Wert ein @ enthält,

    schau dir die stringfunktionen von PHP an, http://de.php.net/manual/de/ref.strings.php.
    z.b. strpos().

    damit ich weiß ob es
    sich um eine e-mail adresse handelt oder nicht.

    hurra, jetzt weißt du das blubb@jodel eine emailadresse ist.
    oder doch nicht ...?

    gruß,
    wahsaga

    --
    I'll try being nicer if you'll try being smarter.
  3. Hallo Andy!

    Wenn du eine eMail-Adresse validieren möchtest, so solltest du nicht nur auf das @-Zeichen prüfen.

    Nähere Informationen und eine Lösungsmöglichkeit findest du im folgenden Artikel der dclp-FAQ:
     15.11. Wie kann ich feststellen, ob eine Mailadresse äußerlich gültig ist?
     http://www.dclp-faq.de/q/q-mail-adresse-gueltig.html