Badboy46: string nach @ Zeichen durchsuchen

Beitrag lesen

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. ^@ ↩︎