+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 27

Thema: Gültige Email-Adresse

  1. #1
    TP-Supporter Hydrax macht alles soweit korrekt Avatar von Hydrax
    Registriert seit
    Jun 2001
    Ort
    Berlin
    Beiträge
    302

    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

  2. #2
    TP-Special Mod TP-Sponsor Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von Thomas
    Registriert seit
    May 2001
    Ort
    Arnsberg - Sauerland
    Beiträge
    21.326
    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"

  3. #3
    TP-Specialist the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.269
    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! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  4. #4
    TP-Supporter Hydrax macht alles soweit korrekt Avatar von Hydrax
    Registriert seit
    Jun 2001
    Ort
    Berlin
    Beiträge
    302
    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

  5. #5
    TP-Specialist the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.269
    ... 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! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  6. #6
    TP-Supporter SMURF ist auf einem guten Weg Avatar von SMURF
    Registriert seit
    Mar 2001
    Ort
    Bayern
    Beiträge
    437
    hi
    unterstrich ist erlaubt

    Gruß
    SMURF

  7. #7
    TP-Insider dares macht alles soweit korrekt Avatar von dares
    Registriert seit
    Feb 2001
    Beiträge
    531
    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?

  8. #8
    TP-Insider deck16 ist auf einem guten Weg
    Registriert seit
    Jun 2001
    Ort
    Berlin
    Beiträge
    633
    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

  9. #9
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    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

  10. #10
    TP-Supporter wanni macht alles soweit korrekt Avatar von wanni
    Registriert seit
    Mar 2001
    Ort
    Göttingen
    Beiträge
    480
    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)

  11. #11
    TP-Supporter Hydrax macht alles soweit korrekt Avatar von Hydrax
    Registriert seit
    Jun 2001
    Ort
    Berlin
    Beiträge
    302

    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

  12. #12
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    @wanni

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



  13. #13
    TP-Supporter wanni macht alles soweit korrekt Avatar von wanni
    Registriert seit
    Mar 2001
    Ort
    Göttingen
    Beiträge
    480
    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)

  14. #14
    TP-Specialist the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE the0bone ist ein richtiges Arbeitstier - DANKE Avatar von the0bone
    Registriert seit
    Mar 2001
    Ort
    NDS
    Beiträge
    4.269
    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! Doch auch auch wenn man es nicht besser weiss, sollte man beim Erstellen einer Webseite auf Frames und Tabellen verzichten.

  15. #15
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    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

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51