Seite 1 von 1

reg exp für aim, msnm, yim

Verfasst: 31.03.2007 22:17
von Gorgonz
Das Problem ist das Übliche:

Mehr Validierung beim Anlegen eines neuen Profils wegen SPAM-Geschichten. In der aktuellen Fassung vom phpbb werden die Variablen aim, msnm, yim nur auf Mindestlänge geprüft.

Würde gern zusätzlich mit regulären Ausdrücken validieren, aber ich kenne einfach nicht alle Möglichkeiten der erlaubten Ausdrücke.

Hat schon mal jemand regexp für die preg_match() Funktion dieser Variablen gemacht oder kann mir wenigstens beschreiben, welche Gestalt diese 3 Eingaben annehmen dürfen?

Will ja keine legalen Kombinationen rauswerfen, bloß weil ich sie nicht kenne ;-)

PS: Strings, die mit http://.. beginnen, dürfen die Ausdrücke aber nie werden, oder?

Verfasst: 01.04.2007 10:45
von Ambience
ich habe leider kein msn, aim oder yim.

Poste mal bitte beispieladressen für alle 3. Am besten du schreibst dann noch kurz was für zeichen bei welcher adresse drinne sein dürfen und welche nicht.

bei icq könnte ein regexp z.b. so aussehen:

Code: Alles auswählen

preg_match('/[0-9]{3}\-[0-9]{3}\-[0-9]{3}/', '274-105-367');

Verfasst: 01.04.2007 11:00
von gn#36
Diese ICQ Expression geht dann aber nur, wenn man die '-' einbaut, ohne nicht, es wäre mir aber neu, dass die zwingend erforderlich sind...

Vielleicht besser:

Code: Alles auswählen

preg_match('/(([0-9]{3}\-[0-9]{3}\-[0-9]{3})|[0-9]{9})/', '274-105-367');
Haben denn ICQ Nummern überhaupt immer genau 9 Stellen?

Verfasst: 01.04.2007 11:45
von Gorgonz
es sieht so aus, als scheitert ihr an der selben Stelle wie ich ;-) :

wir haben keine Ahnung, wie diese Adressen aufgebaut sein dürfen, bin eben auch kein AIM, MSN oder Yahoo-Messenger.

Soweit ich im Internet erkennen kann, sind z.B. AIMs wie email-Adressen aufgebaut, aber ich hab keine Ahnung, ob es auch Ziffernfolgen wie bei icq sein können.

Den regulären Ausdruck würde ich schon hinbekommen, es sind die Regeln, die mir fehlen.

Übrigens hatte ich icq nicht erwähnt, weil das bereits im Original-Skript abgeprüft wird mit dem simplen Ausdruck
'/^[0-9]+$/'
Sollte aber genügen, weil das keine website werden kann und das ist es, was Google-Spammer brauchen.

Wen es mehr interessiert, der kann bei sich unter <forum>/include/functions_validate.php nachsehen.

[Ambience, gn#36] Bei uns ist es so, dass alle eingetragenen icqs reine Ziffernfolgen ohne '-' sind. Ähhm, selbst die Spammer halten sich an diese Regel :D

Verfasst: 01.04.2007 11:59
von gn#36
Geht mit der geposteten Reg-exp natürlich auch nicht anders.

Meines Wissens kann bei AIM der Screenname einigermaßen beliebig sein, muss auf keinen Fall immer eine Email Adresse sein, da kannst du aber evtl. einfach die Zeichenfolge http:// sperren wenn du möchtest. Ob das viel bringt ist eine andere Frage...

Verfasst: 01.04.2007 13:54
von S2B
Wie wär's mit sowas für ICQ:

Code: Alles auswählen

preg_match('#[0-9]{3}(?:-?[0-9]{3}){1,2}#', $icq_number);
Das berücksichtigt auch alte Nummern, die aus nur 6 Ziffern bestanden.

Bei MSN sind es E-Mailadressen, bei AIM kann der Name individuell gewählt werden (siehe letzter Beitrag).

Edit: Noch ein bisschen verbessert.