Mailinglisten-Archive |
> -----Original Message----- > From: benjamin rüegg [mailto:byte_(at)_mounton.ch] > Sent: Wednesday, April 17, 2002 1:38 PM > To: php_(at)_phpcenter.de > Subject: [php] E-Mail Check mit Wildcards? > > > Hallo Liste > > Da wir es gerade von E-Mail Checks haben, folgende Frage: > Ich habe ein Formular-Script, das User sperren kann über deren > E-Mail Adresse. Liegt also eine E-Mail Adresse in der mySQL > Tabelle, blockt das Script ab. Das sieht dann so aus: > > if(!preg_match("/$row[blockmail_adress]/i","$email")) ..... > > In der Datenbank sind die Datensätze à la "spammer_(at)_name.com" > abgelegt. Versucht die selbe Person es wieder z.Bsp. mit > "spammer1_(at)_name.com" ist der Schutz bereits wieder nutzlos. > > Gibt es eine Art Wildcards-Funktion, dass ich die Datensätze > mit "spammer*_(at)_name.com" verfassen könnte? > hmm mal schauen ob ich Dich richtig verstehe, Du hast in einer MySQL Tabelle in einer Spalte ganz viele Emailadressen, die liest Du alle aus, und dann lässt Du wohl eine Schleife laufen die per Regular Expression prüft, ob die Adresse mit dem Eintrag in der DB übereinstimmt??? Also mal abgesehen davon, dass die Frage ob bei Regular Expressions auch die Möglichkeit besteht mit Wildcard zu suchen amüsant ist (da empfehle ich doch dringend ein Manual) Hast Du schon mal was von SQL gehört? guck Dir doch vielleicht mal das MySQL Manual an. Ich würde Dir zuallerst empfehlen die Domain in einer separaten Spalte vorzuhalten - die wird wohl nicht mal eben um ein Zeichen geändert, insofern kannst Du da mit = vergleichen und somit einen vernünftigen Index nutzen, nur bei dem was vor dem _(at)_ steht lohnen die Wildcards, MySQL kennt da % und _, aber vielleicht willst Du ja gleichlautende (soundex) oder Teilbegriffe suchen lassen? Wenn Du meinst dass, wenn mike ein spammer ist, dann ist mike1 wohl auch einer, dann sollte das umgekehrt doch auch gelten? -- Gruß Mike Beck mike.beck_at_ibmiller.de http://www.ibmiller.de
php::bar PHP Wiki - Listenarchive