@ und .de im inputtext abfrage

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • So, habe mal mein bestes versucht, eine Funktion zu schreiben, welche das Email-Format




    Output / Test:



    //EDIT:
    Achja, hab vergessen: Es wird noch die Split-Funktion aus der SAMP-Wiki verwendet:

    Einmal editiert, zuletzt von Capture ()

  • So sollte es gehen

    Lässt trotzdem noch sowas zu


    heinrich@d..ehotmail
    heinrich@dehotmail.
    oder
    ..heinrich@de.hotmail


    alles valide EMail Adressen :hm:


    @Tusk
    selbiges Problem bei dir.


    Solltest ebenso prüfen ob es auf aufeinandere folgende punkte o.ä gibt

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • alles valide EMail Adressen

    Lässt nur 1 von denen zu...


    Wobei man halt wirklich regex oder php für eine 100%ige Validation nutzen sollte...


    Hier mein Code nochmal bissl abgeändert...


    C
    stock IsValidMailAddr(const string[])
    {
        new l = strlen(string),p_s;
        if(l < 5 || strfind(string,",") != -1) return 0;
        p_s = strfind(string,"@");
        if(p_s == -1) return 0;
        if(strfind(string,"@",false,p_s+1) != -1) return 0;
        if(strfind(string,".",false,p_s) == -1 || string[p_s+1] == '.' || string[p_s-1] == '.') return 0;
        return (('A' <= string[l-1] <= 'Z' || 'a' <= string[l-1] <= 'z') && ('A' <= string[0] <= 'Z' || 'a' <= string[0] <= 'z'));
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • @Tusk IANA listet aktuell 1181 Domain Namen. Soll man die da jetzt alle eintragen? Und heöinrich@hotmail.de ist nach RFC 6530 eine gültige E-Mail Adresse.


    E-Mail Adressen Validierung ist genau wie das Arbeiten mit Zeit(zonen) etwas, was man nicht selbst implementieren sollte. Nutzt bestehende Bibliotheken o.ä. die sich bereits im Produktiven Einsatz bewährt haben anstatt hier irgendwas zusammenzufrickeln.

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Lässt nur 1 von denen zu...

    Dein alter code hat das zu gelassen, bevor du ihn editiert hast:


    stock IsValidMailAddr(const string[])
    {
    new l = strlen(string),p_s,p;
    if(l < 5 || strfind(string,",") != -1) return 0;
    p_s = strfind(string,"@");
    if(p_s == -1) return 0;
    if(strfind(string,"@",false,p_s+1) != -1) return 0;
    p = strfind(string,".",false,p_s);
    if(p == -1 || p_s+1 == p) return 0;
    for(new i=p+1; i!=-1; i=strfind(string,".",false,p+1)) p=i;
    return !(p+1==l);
    }


    hat das zugelassen :b

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Solltest ebenso prüfen ob es auf aufeinandere folgende punkte o.ä gibt

    Hast recht, daran hab ich garnicht gedacht. So müsste es aber gehen :P


  • Überprüf es per HTTP Request... Im PHP Script würde ich es selber per Regex machen... Kp ob Pawn Regex unterstützt.. Kann dir morgen mal nen RegEx dafür schreiben...


    RegEx ist heute sogar garnicht mehr nötig. Heute kann man das einfach Filtern.


    PHP
    if (filter_var($MAIL, FILTER_VALIDATE_EMAIL)) {
    	return true;
    } else {
    	return false;
    }