![]() |
mail adresse mit neuen domäns prüfen
ich möchte eingegeben mailadresse auf richtigkeit überprüfen und da ist mir eingefallen das es mit einem "simplen"
PHP-Code:
nun meine frage: wie würde eine aktulle überprüfung aussehen? btw: was macht ^ am anfang und $ am ende und * in der mitte???? |
frag mich nicht wie du umlaute reinbringst aber vielleicht kann regex ja
[A-Za-z_.0-9üöäÜÖÄ] vielleicht geht das ja anyway: ^ heißt anfang des strings $ ende des strings ^[A-Z]$ wäre jeder einzelne großbuchstabe * bestimmt die häufigkeit (0 bis viele) des vorherigen ausdrucks |
Du könntest ja eine Kopie der Mailadresse in einer Hilfsvariable speichern, in der daß ä durch ae ersetzen und wenn die überprüfung ok ist die originale Adresse verwenden.
Oder du löst die Domain in ihren Punycode auf (frag mich nicht wie das geht...). Jak |
1.) ereg* ist böse! Man nehme preg*
2.) Man nehme außerdem [[:alpha:]] ~ |
Zitat:
ad2: WTF? PHP hilfe kennt das ned. codebeispiel :D *bittebitte* |
[[:alpha:]] sind alle alphanumerischen zeichen -> [A-Za-z0-9]
|
ok nun hab ichs so:
PHP-Code:
|
wieso probierst du es eigentlich net aus?
wenn du eh schon den regex hast? |
Zitat:
edit: ajo das obrige funzt ned :( er erkennt jeder mailadresse als falsch. :heul: |
regex = regular expression
bei dem obigen ist ein fehler in der klammerung du musst die _/. usw mitklammern probier mal [[[:alpha:]]-_\.*] |
weder mit noch ohne eingeklammerten * funzt es :(
folgende varianten funzen NICHT: PHP-Code:
|
bin kein regex-experte, aber steht ein . nicht für ein beliebiges zeichen? imho müsste man den escapen -> \. oder ggf. \\.
außerdem gibt es in der tld (com, net, org) weder zahlen noch _ oder -. solltest beim letzten austruck das :alpha: überdenken und - und _ weglassen. |
ich nochmal. wie gesagt, bin nicht sicher, aber geht es vielleicht irgendwie so?:
^(A-Z|a-z|0-9|\-|_|\.)*@(A-Z|a-z|0-9|\-|\.)*\.(A-Z|a-z)(A-Z|a-z)(A-Z|a-z)?(A-Z|a-z)?$ |
Zitat:
|
du könntest alle möglichen adresse in ein dokument schreiben und überprüfen ob die eigegebene da auch vorkommt ;D
*renn* |
ad 1) ereg* ist verammt langsam
ad 2) du musst natürlich die anderen Zeichen auch in der Zeichenklasse berücksichtigen, zB: [[:alpha:],._-]* Und [:alnum:] wären alle alphanumerischen Zeichen. Zum Schluß sollte vielleicht noch etwas erwähnt werden: RTFM! ;) ~ |
Ach noch was, gerade entdeckt:
Der Bindestrich sollte in einer Zeichneklasse immer zuerst oder zuletzt stehen, wenn er nicht maskiert wird. ~ |
wegen RTFM: [:alpha:] kommt weder online vor noch in meinem manuall :(
Code:
if(preg_match("^([[:alpha:],._-]*)@([[:alpha:],._-]*)\.([[:alpha:],._-]*)$^", $Mail)) {danke nochmal an alle :) |
Hm - ja, wenn du "@." als E-Mail Adresse ansiehst :)
Verwende / als Begrenzer. Verwende + statt * wenn min. 1 Zeichen erforderlich ist. ~ |
sry aber ich steh schon wieder auf der leitung:
begrenzer? also vor dem . ein / oder wie? btw habs jetzt so: Code:
if(preg_match("^([[:alpha:],._-]+)@([[:alpha:],._-]+)\.([[:alpha:],._-]+)$^", $Mail)) { |
"/^...$/"
Hm, und ich glaub Beistriche willst auch net in der E-Mail, oder? ~ |
oh thx.
btw was nützen die begrenzer? |
Re: mail adresse mit neuen domäns prüfen
Zitat:
Zitat:
$ ... Ende der Zeile * ... - bis n Wiederholungen des davor stehenden Zeichens |
warum kann man nicht?
ist es nur nicht konform oder funkioniert es echt nicht? ich frage deswegen weil ich es bei mir getestet hab mit irgedwas@übung.com oder dasistein@fuß.de und er hat es genommen... |
Weil IDN-Domains intern im Punycode verwaltet werden. Du gibts zwar im Browser "österreich.at" ein, das IDN-Plugin macht aber "xn--sterreich-z7a.at" draus. Und so werden die auch ueberall verarbeitet.
|
so und nun folgendes BITTE auf deutsch:
Zitat:
aber WTF is BNF ? |
BNF ... Backus Naur Form
http://users.informatik.fh-hamburg.d...mp/node15.html |
big thx.
btw du hast nicht zufällig die entsprechende RFC bei der hand oder :shy: :engel: :D edit gefunden: ftp://ftp.rfc-editor.org/in-notes/rfc3492.txt ich hab versucht das zu verstehn aber da steig ich echt aus.....:( |
http://www.gnu.org/software/libidn/
und fuer unsere PHP-Freunde: http://phpclasses.byting.at/browse/package/1509.html Fuer die Perl-Monks gibt es natuerlich auch eine Loesung: http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html Man beachte die RegEx! :cool: |
@_m3: Alles schön und gut und richtig. Aber bei einer Formulareingabe einer e-mail-Adresse, welche dann vielleicht in einer Datenbank gespeichert wird, kommt das doch alles nicht zum Tragen. Da überprüfe ich doch die Eingabe, die die Umlaute enthält und speichere die auch genau so ab.
gruss, snowman |
@snowman: Prinzipiell ja, da hast Du recht. Aber potassium wollte ja:
ich möchte eingegeben mailadresse auf richtigkeit überprüfen Und da muss man den Punycode checken, da dieser an DNS, ... weitergegeben wird und nicht die Klartextdomain. Und selbst, wenn ich "nur" irgedwas@übung.com nehme, ist das "ü" nun ISo8859-1, ISO8859-15, UTF-8, UTF-16 oder Windows-1250 encoded????? ;) |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 06:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag