power-box.de
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 06.12.2001, 14:57   #1
TP-Supporter
 
Benutzerbild von Hydrax
 
Registriert seit: Jun 2001
Ort: Berlin
Hydrax macht alles soweit korrekt

Gültige Email-Adresse


Greets,

welchen Regeln genau untersteht eine Email-Adresse ?!

Was genau darf sie enthalten .. und was nicht ?

Hat da jemand einen Link oder ne Erklärung ?

Und wie frage ich das am besten mit PHP ab? !
Gibts da echt keine Funktion für ?!!?.. *wunder*
__________________
keep looking forward... Hydrax
Hydrax ist offline   Mit Zitat antworten


Alt 06.12.2001, 15:13   #2
TP-Special Mod
 
Benutzerbild von Thomas
 
Registriert seit: May 2001
Ort: Arnsberg - Sauerland
Thomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine User
du kannst nach dem Vorahndensein des @ - Zeichens abfragen.
PHP hab ich kein Plan , DW mach das per js so:
PHP-Code:
<input type="text" name="textfield" onBlur="MM_validateForm('textfield','','NisEmail');return document.MM_returnValue"
Thomas ist gerade online   Mit Zitat antworten
Alt 06.12.2001, 16:02   #3
TP-Specialist
 
Benutzerbild von the0bone
 
Registriert seit: Mar 2001
Ort: NDS
the0bone ist auf einem guten Weg
emails dürfen so aussehen:

^[\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$

Das Script in PHP ist 200 Zeilen lang... muss mal schaun, ob ich es irgendwo noch gespeichert habe. Bin mir aber nicht sicher!
__________________
the0bone

Wissen ist Macht, nichts Wissen macht nichts!
the0bone ist offline   Mit Zitat antworten
Alt 06.12.2001, 16:37   #4
TP-Supporter
 
Benutzerbild von Hydrax
 
Registriert seit: Jun 2001
Ort: Berlin
Hydrax macht alles soweit korrekt
Herzlichen Dank...

Jetzt wird mir das ganze mit den Suchmustern auch klarer.
Danke schön! Wieder was gelernt !

Eine Frage noch:
Dürfen Email keine _ enthalten ?

hydrax_hatwasgelernt@traum-projekt.com

wäre eine somit eine ungültige Email-Adresse ?

__________________
keep looking forward... Hydrax
Hydrax ist offline   Mit Zitat antworten
Alt 06.12.2001, 17:23   #5
TP-Specialist
 
Benutzerbild von the0bone
 
Registriert seit: Mar 2001
Ort: NDS
the0bone ist auf einem guten Weg
... mir ist noch keine Emailadresse mir _ untergekommen...

Hast du ne Homepage? mit Emailaliasen? Dann versuch doch einfach mal so eine Einzurichten!
Ich weiss nur, das auch vor dem @ ein . sein darf.
__________________
the0bone

Wissen ist Macht, nichts Wissen macht nichts!
the0bone ist offline   Mit Zitat antworten
Alt 06.12.2001, 18:29   #6
TP-Supporter
 
Benutzerbild von SMURF
 
Registriert seit: Mar 2001
Ort: Coburg / Bayern
SMURF ist auf einem guten Weg
hi
unterstrich ist erlaubt

Gruß
SMURF
SMURF ist offline   Mit Zitat antworten
Alt 06.12.2001, 18:51   #7
TP-Insider
 
Benutzerbild von dares
 
Registriert seit: Feb 2001
dares macht alles soweit korrekt
hi,

der php-code zum checken dauert:

if (!preg_match("=^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$=i",$email))
{

}

in $email steht natürlich die mailadresse drin, was auch sonst


mfg dares
__________________
ich bin krebs erregend - wer ist krebs?
dares ist offline   Mit Zitat antworten
Alt 06.12.2001, 20:12   #8
TP-Insider
 
Registriert seit: Jun 2001
Ort: Berlin
deck16 ist auf einem guten Weg
zum php code:

einige von denen funktionieren nicht mit domains wie co.uk, jp.org
usw. Also wers braucht, checken.

(wie das konkret bei dem oben aussieht hab ich nicht getestet)
__________________
<table> was my first love and it will be my last
deck16 ist offline   Mit Zitat antworten
Alt 07.12.2001, 00:44   #9
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Hi !!

Ich benutze immer folgenden Ausdruck
PHP-Code:
if (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email))
   {  echo 
"Mail-Adresse falsch!";} 
Dieser Ausdruck akzeptiert auch Subdomains...
Durch eregi braucht man nicht auf Groß- und Kleinschreibung zu achten.

Gruß Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 07.12.2001, 09:06   #10
TP-Supporter
 
Benutzerbild von wanni
 
Registriert seit: Mar 2001
Ort: Göttingen
wanni macht alles soweit korrekt
Zitat:
Original geschrieben von the0bone
Das Script in PHP ist 200 Zeilen lang... muss mal schaun, ob ich es irgendwo noch gespeichert habe. Bin mir aber nicht sicher!
Was steht denn dann noch in den restlichen 198 Zeilen des Scripts?
__________________
Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)
wanni ist offline   Mit Zitat antworten
Alt 07.12.2001, 12:51   #11
TP-Supporter
 
Benutzerbild von Hydrax
 
Registriert seit: Jun 2001
Ort: Berlin
Hydrax macht alles soweit korrekt
Thumbs up

DAANKE !


herzlichen dank fuer die antworten...
jetzt muss ich mir die ausdrücke nurnoch im kopf auseinanderklamüsern, damit ich das auch verstehe

ich setzt das nun mal auf erledigt.
__________________
keep looking forward... Hydrax
Hydrax ist offline   Mit Zitat antworten
Alt 07.12.2001, 13:44   #12
TP-Greis
 
Benutzerbild von Lars
 
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
Lars bringt sich richtig ein
@wanni

Vermutlich ist das ein Script, das neben der eMail-Adresse auch noch viertausend andere Formulareingaben auf Richtigkeit überprüft.


__________________
Give up yourself into the moment — The time is now.
Lars ist offline   Mit Zitat antworten
Alt 07.12.2001, 14:41   #13
TP-Supporter
 
Benutzerbild von wanni
 
Registriert seit: Mar 2001
Ort: Göttingen
wanni macht alles soweit korrekt
Das könnte sein...von daher wäre das gar nicht schlecht, wenn Du das Script noch finden würdest, dann könnte man doch ne Zusammenstellung der gängigsten regulären Ausdrücke machen, um die verschiedensten Sachen zu überprüfen...
__________________
Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)
wanni ist offline   Mit Zitat antworten
Alt 07.12.2001, 14:46   #14
TP-Specialist
 
Benutzerbild von the0bone
 
Registriert seit: Mar 2001
Ort: NDS
the0bone ist auf einem guten Weg
Was ich meine setzt sich auch vielen Einzeltests zusammen:

PHP-Code:
<?php
function validate_email ($eaddr="")
{

    if (empty(
$eaddr))
    {
#print "[$eaddr] is not valid\n";
        
return false;
    }
    
$laddr "";
    
$laddr $eaddr;

# if the addr-spec is in a route-addr, strip away the phrase and <>s

    
$laddr preg_replace('/^.*</',''$laddr);
    
$laddr preg_replace('/>.*$/','',$laddr);
    if (
preg_match('/^\@.*:/',$laddr))    #path-relative domain
    
{
        list(
$domain,$addr_spec) = preg_split('/:/',$laddr);
        
$domain preg_replace('/^\@/','',$domain);
        if (!
is_domain($domain)) { return false; }
        
$laddr $addr_spec;
    }
    return(
is_addr_spec($laddr));
}

function 
is_addr_spec $eaddr "" )
{
    list(
$local_part,$domain) = preg_split('/\@/',$eaddr);
    if (!
is_local_part($local_part) || !is_domain($domain))
    {
#print "[$eaddr] is not valid\n";
        
return false;
    }
    else
    {
#print "[$eaddr] is valid\n";
        
return true;
    }
}

#local-part  =  word *("." word)             ; uninterpreted
function is_local_part $local_part "" )
{
    if (empty(
$local_part)) { return false; }

    
$bit_array preg_split('/\./',$local_part);
    while (list(,
$bit) = each($bit_array))
    {
        if (!
is_word($bit)) { return false; }
    }
    return 
true;
}

#word        =  atom / quoted-string
#quoted-string = <"> *(qtext/quoted-pair) <">; Regular qtext or
#                                            ;   quoted chars.
#qtext       =  <any CHAR excepting <">,     ; => may be folded
#                "\" & CR, and including
#                linear-white-space>
#quoted-pair =  "\" CHAR                     ; may quote any char
function is_word $word "")
{

    if (
preg_match('/^".*"$/i',$word))
    {
        return(
is_quoted_string($word));
    }
    return(
is_atom($word));
}

function 
is_quoted_string $word "")
{
    
$word preg_replace('/^"/','',$word);    # remove leading quote
    
$word preg_replace('/"$/','',$word);    # remove trailing quote
    
$word preg_replace('/\\+/','',$word);    # remove any quoted-pairs
    
if (preg_match('/\"\\\r/',$word))    # if ", \ or CR, it's bad qtext
    
{
        return 
false;
    }
    return 
true;
}


#atom        =  1*<any CHAR except specials, SPACE and CTLs>
#specials    =  "(" / ")" / "<" / ">" / "@"  ; Must be in quoted-
#            /  "," / ";" / ":" / "\" / <">  ;  string, to use
#            /  "." / "[" / "]"              ;  within a word.
#SPACE       =  <ASCII SP, space>            ; (     40,      32.)
#CTL         =  <any ASCII control           ; (  0- 37,  0.- 31.)
#                character and DEL>          ; (    177,     127.)
function is_atom $atom "")
{

    if (
    (
preg_match('/[\(\)\<\>\@\,\;\:\\\"\.\[\]]/',$atom))    # specials
        
|| (preg_match('/\040/',$atom))            # SPACE
        
|| (preg_match('/[\x00-\x1F]/',$atom))        # CTLs
    
)
    {
        return 
false;
    }
    return 
true;
}

#domain      =  sub-domain *("." sub-domain)
#sub-domain  =  domain-ref / domain-literal
#domain-ref  =  atom                         ; symbolic reference
function is_domain $domain "")
{

    if (empty(
$domain)) { return false; }

# this is not strictly required, but is 99% likely sign of a bad domain
    
if (!preg_match('/\./',$domain)) { return false; }

    
$dbit_array preg_split('/./',$domain);
    while (list(,
$dbit) = each($dbit_array))
    {
        if (!
is_sub_domain($dbit)) { return false; }
    }
    return 
true;
}
function 
is_sub_domain $subd "")
{
    if (
preg_match('/^\[.*\]$/',$subd))    #domain-literal
    
{
        return(
is_domain_literal($subd));
    }
    return(
is_atom($subd));
}
#domain-literal =  "[" *(dtext / quoted-pair) "]"
#dtext       =  <any CHAR excluding "[",     ; => may be folded
#                "]", "\" & CR, & including
#                linear-white-space>
#quoted-pair =  "\" CHAR                     ; may quote any char
function is_domain_literal $dom "")
{
    
$dom preg_replace('/\\+/','',$dom);        # remove quoted pairs
    
if (preg_match('/[\[\]\\\r]/',$dom))    # bad dtext characters
    
{
        return 
false;
    }
    return 
true;
}

// void print_validate_email ([string email address])

// This function prints out the result of calling the validate_email()
// function on a given email address.

function print_validate_email ($eaddr="")
{
    
$result validate_email($eaddr) ? "is valid" "is not valid";
    print 
"<h4>email address (".htmlspecialchars($eaddr).") $result</h4>\n";
}
?>
Diese Funktionen ruft ihr dann je nach bedarf auf.
__________________
the0bone

Wissen ist Macht, nichts Wissen macht nichts!
the0bone ist offline   Mit Zitat antworten
Alt 19.12.2001, 21:29   #15
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Also das is echt etwas übertrieben, nur um eine eMail zu checken - diese Version ist viel kürzer und funktioniert recht gut:

PHP-Code:
 $pattern="#^[-!\#$%&\"*+\\./\d=?A-Z^_|'a-z{|}~]+"."@"."[-!\#$%&\"*+\\/\d=?A-Z^_|'a-z{|}~]+\."."[-!\#$%&\"*+\\./\d=?A-Z^_|'a-z{|}~]+$s#";
      if (!
preg_match($pattern,$email)) $fehler[] = "Sie haben keine g&uuml;ltige Email-Adresse angegeben."
Das läuft mit allen Domains, Unterstrichen etc. ...
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Gültige Email-Adresse Gültige Email-Adresse
« PHP My Admin - Letter it | preg_replace Problem, Dateinamen auslesen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu be