E-mail validator

Door Miranda Verburg, 25 jaar geleden, 7.631x bekeken

Haaiii.. :) Met deze functie kun je kijken of een opgegeven e-mail adres voldoet aan een @, een punt en 2 tot 4 tekens achter de laatste punt heeft staan.

Deze heb ik eigenlijk gejat van Bas maar een paar mensen vroegen me na zoiets en dan verwees ik ze naar Bas zijn interne mailing lijst script maar daar konden ze niet uit snappen wat nou de e-mail checker was. Dus hierbij mijn stand-alone e-mail validator :)

Voorbeeld: http://

Gesponsorde koppelingen

PHP script bestanden

  1. email-validator

 

Er zijn 30 reacties op 'Beveiliging'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
B a s
B a s
25 jaar geleden
 
0 +1 -0 -1
hehe, oke dan :) zietter netjes uit miranda :)
Arnoud
Arnoud
25 jaar geleden
 
0 +1 -0 -1
Is het niet practisch om dan ook de ~ toe te voegen?
B a s
B a s
25 jaar geleden
 
0 +1 -0 -1
~ mag niet in een e-mail adres voorkomen lijkt mij ..


25 jaar geleden
 
0 +1 -0 -1
Even getest:

Received: (qmail 341 invoked by uid 110); 12 Mar 2003 10:19:51 -0000
Delivered-To: [email protected]
Erik Achternaam
Erik Achternaam
25 jaar geleden
 
0 +1 -0 -1
Hijs fijn :) Ik gebruik ongeveer 't zelfde script, maar ik laat 'm ook nog checken of de hostname (het deel achter de @) wel een ip heeft toegekend. Zo geeft ie ook een error bij [email protected] :p


25 jaar geleden
 
0 +1 -0 -1
Ik gebruik ook zo iets maar dan zonder dat de die de mail checht maar wel op [email protected] dat rekent die goed. ERIK kan je die script ff geven van of de IP wel toegekent is
Erik Achternaam
Erik Achternaam
25 jaar geleden
 
0 +1 -0 -1
Okeej (:

$email_host = explode("@", $email);
$email_host = $email_host[1];
$email_resolved = gethostbyname($email_host);
if ($email_resolved == $email_host) { echo("Dit email adres is niet geldig.<br>\n"); }
else { echo("Dit email adres is geldig.<br>\n"); }
Erik Achternaam
Erik Achternaam
25 jaar geleden
 
0 +1 -0 -1
Btw, als je 'm in een functie wilt gebruiken moeje natuurlijk
echo("...");
vervangen door
return false of return true;

in dit geval $valid = "yes"; of $valid = "no"; maar 't komt op 't zelfde neer (;


24 jaar geleden
 
0 +1 -0 -1
Ik snap er geen biet van!! wie kan me helpen :???? :( :'(


24 jaar geleden
 
0 +1 -0 -1
Weten jullie een manier om deze code te veranderen zodat hij de geldigheid van een opgegeve website checkt.
Grtjes Peter
Yannis
yannis
24 jaar geleden
 
0 +1 -0 -1
kan je hierbij ook meerdere mails laten chacken en vanaf dat er ook maar een emailadres fout is een fout te geven??
en zo ja wat is daar dan het script van??
Yannis
yannis
24 jaar geleden
 
0 +1 -0 -1
ik heb het al maar nu de code is wel heel lang geworden want ik heb deze twee keer moeten genruiken dus.
maar misschien is hier een kortere versie van??
hetgeen dat ik nu doe is gewoon de code uitvoeren met het eerste emailadres en dan bij de if een variabel van 1 ofzo laten aanmaken
en dan nog is met een ander en dan terug een ander variabel met terug als waarde 1 en dan tel ik die bij elkaar op en als ik dan op 2 uitkom dan zijn de twee emailadressen juist.
anders is er maar 1 juist of geen een


24 jaar geleden
 
0 +1 -0 -1
heeyz ik heb die script gedownload en die plaats ik in www die map en dan ga ik naar die pagina en dan kan ik die script downloaden :S http://80.56.186.95/email.php plzzz help me


24 jaar geleden
 
0 +1 -0 -1
heeyz ik heb die script gedownload en die plaats ik in www die map en dan ga ik naar die pagina en dan kan ik die script downloaden :S http://80.56.186.95/email.php plzzz help me


24 jaar geleden
 
0 +1 -0 -1
ja dit bestaad al ik weet niet hoelang het is gewoon een standaard stukje ergi functie dat noem ik geen goede mail validatie een echte mail validatie is met een domein check er in

en natuurlijk met een ergi dan zit je wel goed anders is het gewoon waardelooz en er staat nog genoeg onzin op het net van php wat allemaal standaard is maar voor sommige beginners blijkbaar niet.....


24 jaar geleden
 
0 +1 -0 -1
Als je het zo goed weet Klaas, schrijf dan ff een goede volgens jouw standaarden... Tot die tijd doen we het hier wel mee


23 jaar geleden
 
0 +1 -0 -1
Op zich wel aardig, maar voldoet inderdaad niet aan alle standaarden. De wat exotischere tekens in localpart (~ zoals eerder genoemd, maar ook bijvoorbeeld de +) worden als ongeldig aangemerkt.
- SanThe -
- SanThe -
23 jaar geleden
 
0 +1 -0 -1
Klopt, die horen ook niet in een emailadres


23 jaar geleden
 
0 +1 -0 -1
Graag ook nog even checken op string lengte. Een email moet minimaal 7 tekens bevatten dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (strlen($emailadres) => 7)
echo "ok";
else
echo "niet";
?>
Willem Jan Z
Willem Jan Z
23 jaar geleden
 
0 +1 -0 -1
Als dat hostcheck erin staat klopt dat sowieso wel... omdat als er niks voor @ staat ingevuld hij ook niet werkt (toch?)
Pim Vernooij
Pim Vernooij
23 jaar geleden
 
0 +1 -0 -1
ff samengevoegd :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
function email_validator($email)
{

    $email_host = explode("@", $email);
    $email_host = $email_host[1];
    $email_resolved = gethostbyname($email_host);
    
    if($email_resolved == $email_host)
    {

        $valid = FALSE;
    }


    if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email))
    {

        $valid = TRUE;
    }

    
    else
    {
        $valid = FALSE;
    }

    return $valid;
}


$check_email = email_validator($mail_variabele);
if ($check_email == FALSE)
{

    echo "Ongeldig e-mail adres.";
}

else
{
    echo "Geldig e-mail adres.";
}

?>
Bruno -
bruno -
23 jaar geleden
 
0 +1 -0 -1
zo heb ik de mijne nie zo pr0 maar kan dermee door :P

$email = $_POST["email"];
function check_email($str)
{
//returns 1 if valid email, 0 if not
if(ereg("^.+@.+\..+$", $str))
return 1;
else
return 0;
}
if(check_email($email)) { blalablala.....
Sander
sander
21 jaar geleden
 
0 +1 -0 -1
Pim Vernooij schreef op 14.06.2005 20:03
ff samengevoegd :)


DANKE :D
Shane Deconinck
Shane Deconinck
21 jaar geleden
 
0 +1 -0 -1
Pim Vernooij schreef:

.......
if($email_resolved == $email_host)
{
$valid = FALSE;
}

if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email))
{
$valid = TRUE;
}
.....

Maar als de eerste check ($email_resolved == $emailhost) false geeft, en de eregi check erna true geeft, word $valid dan toch overschreven en wordt de eerste check genegeerd?
K i p
K i p
21 jaar geleden
 
0 +1 -0 -1
Deze functie kan ook simpeler, misschien vind je het leuk om te weten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
function email_validator($email)
{
    return (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email));
}
Joeri
Joeri
21 jaar geleden
 
0 +1 -0 -1
Als je het dan samenvoegd doe het dan juist:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
function email_validator($email)
{

  $email_host = explode("@", $email);
  $email_host = $email_host[1];
  $email_resolved = gethostbyname($email_host);
    
  if($email_resolved == $email_host) {
    if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email)) {
      return = TRUE;
    }
  }
else {
     return FALSE;
  }
}


 
if (!email_validator($email)) {
  echo "Ongeldig e-mail adres.";
}
else {
  echo "Geldig e-mail adres.";
}

?>


al gebruik ik deze

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
function is_Mail($email) {
  if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email)) {
    $host = explode('@', $email);
    if(checkdnsrr($host[1].'.', 'MX') ) return true;
    if(checkdnsrr($host[1].'.', 'A') ) return true;
    if(checkdnsrr($host[1].'.', 'CNAME') ) return true;
  }
else {
    return false;
  }
}

?>


Grtz.
Michiel
Michiel
20 jaar geleden
 
0 +1 -0 -1
@Joerie,

Op regel 10 moet dit : return TRUE;

return TRUE;
Cees St
Cees St
20 jaar geleden
 
0 +1 -0 -1
De ereg is fout!
er staat een backslash \ teveel, want het is de bedoeling de punt hier te gebruiken, dus \. moet het zijn

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
 eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$", $email);
?>


Dit geeft een true bij een correct email adres.
R-J
R-J
20 jaar geleden
 
0 +1 -0 -1
De functie die hier beschreven wordt, is niet fantastisch.
Mijn webserver is alleen via www.domein.nl te bereiken, niet met domein.nl
Hierdoor worden al mijn email adressen als ongeldig gemerkt.
Dit zal waarschijnlijk ook gelden adressen van een domein dat alleen voor email gebruikt wordt.
Wanneer je script eerlijke email adressen blijft afkeuren, kun je belangrijke berichten mislopen en bezoekers die niet alleen komen kijken wegjagen.

Dus mijn advies: niet gebruiken!

Het script zoals deze door Joeri wordt gebruikt (het tweede script dat hij noemt) is een stuk beter, deze kijkt naar de dns server records, waarbij MX voor mail exchange schijnt te staan.

Maar, de functie "checkdnsrr" is niet standaard beschikbaar op windows systemen.
Volgens php.net is er een pear uitbreiding beschikbaar.
Op de pagina over deze functie staan ook een aantal oplossingen voor mensen met windowsservers, zoals het bericht van 28-april-'07.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Woxx
Woxx
20 jaar geleden
 
0 +1 -0 -1
Werk goed :)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. email-validator

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.