reg exp für aim, msnm, yim

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Gorgonz
Mitglied
Beiträge: 29
Registriert: 28.05.2005 15:05

reg exp für aim, msnm, yim

Beitrag 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?
Benutzeravatar
Ambience
Mitglied
Beiträge: 628
Registriert: 02.09.2006 11:28
Wohnort: daheim
Kontaktdaten:

Beitrag 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');
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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?
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Gorgonz
Mitglied
Beiträge: 29
Registriert: 28.05.2005 15:05

Beitrag 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
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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...
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag 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.
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Antworten

Zurück zu „Coding & Technik“