Avatar billede lasseriis Nybegynder
05. februar 2001 - 18:38 Der er 9 kommentarer og
5 løsninger

ereg() til email

jeg er ved at fikse en mail-liste til et websted. Den indtastede adresse skal checkes med ereg() så der ikke bliver tilmeldt ugyldige mailadresser!

har prøvet med ereg(^[a-z\\.]+@[a-z\\.]+\\.[a-z]$) men det virkede slet ikke.
men ereg([a-z\\.]+@[a-z\\.]+\\.[a-z]) virkede delvist.

så altså en regexp kode til at validere emailadresser efter typen: \"navn1.navn2@sub.server.dom\", hvor sub-punktumerne behøver ikke at være der(men må godt) og alle bogstaverne skal være lowercase!
Avatar billede razor Nybegynder
05. februar 2001 - 18:48 #1
well.. det er praktisk taget umuligt at lave en sådan, hvis den skal godkende _alle_ gyldige emailadresser. Jeg bruger normalt denne her:

function check_email ($q) {
  list($user,$host) = explode(\"@\",$q);
  if (!$q) return false;
  elseif (!ereg(\"@\",$q)) return false;
  elseif (!$user) return false;
  elseif (eregi(\"[^a-z0-9.-_]\",$user)) return false;
  elseif (!checkdnsrr($host,\"ANY\")) return false;
  else return true;
}
Avatar billede lasseriis Nybegynder
05. februar 2001 - 19:17 #2
checkdnserr()? Tjekker den om serveren findes?
Avatar billede mortenfn Nybegynder
05. februar 2001 - 20:43 #3
den her virker:

    $email1 = ereg_replace(\"([^0-9a-zA-Z.@])\",\"\",$email);
    if ($email <> $email1)Echo \"Ugyldige tegn i feltet \\\"E-mail\\\"...<br>\");
Avatar billede razor Nybegynder
05. februar 2001 - 21:01 #4
lasse: ja

morten: hvad hvis min email er: super-seje_razor@hotmail.com
Avatar billede mortenfn Nybegynder
05. februar 2001 - 22:04 #5
så indsættes - _ i scriptet:
$email1 = ereg_replace(\"([^0-9a-zA-Z.@-_])\",\"\",$email);
Avatar billede razor Nybegynder
05. februar 2001 - 22:06 #6
så matcher den ikke min forkerte email razor@er_cool.com
Avatar billede mkelle1 Nybegynder
05. februar 2001 - 23:21 #7
Hej Lasse

Jeg ved godt det er PHP-kategorien, men jeg har en lille javascript-funktion som tjekker lovlige email adresser. Den kan selvfølgelig skrives om til et PHP regulært udtryk - men det orker jeg ikke lige nu.

<script>
function validate(thisform)
{
str = thisform.EMAIL.value;
reg1 = /(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)/; //not valid
reg2 = /^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$/; // valid

  if (!reg1.test(str) && reg2.test(str)) // if syntax is valid
{
    return true;
}
else
{
alert(\"Du har indtastet en ugyldig e-mailadresse\");
return false;
}
</script>

Mads
Avatar billede lasseriis Nybegynder
06. februar 2001 - 10:22 #8
Morten>> Indtil nu har jeg også kørt med en funktion der tjekkede efter de nødvendige tegn, men da brugerne på det pågældende websted når en ekstrem grad af \"lamhed\" vil de for alt i verden prøve at tilmelde ugyldige e-mail adresser, derfor er det nødvendigt at tjekke dens opbygning med ereg().

Razor, skal lige prøve dit script...
Avatar billede razor Nybegynder
06. februar 2001 - 15:23 #9
mkelle >
det er sq noget af en implementering af regex i javascript. :o)
jeg synes der er en del \\\'er..

men så vidt jeg kan siger den god for en sådan email her: razor@_er-en.snyder.com
Avatar billede mortenfn Nybegynder
06. februar 2001 - 22:50 #10
den her virker ikke hos mig - hvorfor?

(!checkdnsrr($host,\"ANY\"))
Avatar billede mortenfn Nybegynder
06. februar 2001 - 22:51 #11
jeg bruger den her den virker:

elseif (gethostbyname($host)==$host)

morten ;)
Avatar billede sveinhal Nybegynder
07. februar 2001 - 18:00 #12
Denne bør fungere.

---------------------------------------------------------
function validateemail($email, $domaincheck=0){
 
  //kontrollere syntaks
  if(eregi(\"^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\\\.[a-z]{2,3}$\", $email)){

    //kontrollere at domenet er gyldig
    if($domaincheck){
      $domain = substr(strstr($email, \'@\'), 1);
      if(getmxrr($domain, $email))
        if(checkdnsrr($domain,\"ANY\"))
          //gyldig syntaks og gyldig domene
          return TRUE;
    }
    else{
      //kun gyldig syntaks
      return TRUE;
    }
  }

}
---------------------------------------------------------

Nøl ikke med å spørre, dersom det er noe du lurer på.

Vennlig hilsen,
Sevin Halvor
Avatar billede acra Nybegynder
16. februar 2001 - 00:32 #13
manualen....
under ereg der er klart en masse af det i bunden af script som brugere har tilføjet!

/Mathis
Avatar billede lasseriis Nybegynder
08. april 2003 - 10:56 #14
nå, lang tid siden...kan ikke huske hvad jeg gjorde.... i får alle point...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester