Webstatt.org - Community seit 2006 - 2012 (2024?)

Links zählen in einem Text

Avatar user-279
06.07.2007 12:22

Hallo Leute

Ich habe eine Bitte, und zwar habe ich immer noch Spameinträge in einem Gästebuch einer Seite die ich betreue. Captcha ist installiert, hin und wieder schaffen es trotzdem ein paar Bots.

Die Spameinträge haben ja alle immer viele Links drin, jetzt meine Frage: hat jemand eine Funktion die zählt wieviele Links in einem String vorkommen? Oder könnte jemand eine solche Funktion schreiben? Ich habe leider keine Ahnung wie ich das schreiben könnte.

Wäre super praktisch, dann könnte ich alle Einträge sperren die mehr als 2-3 Links enthalten.

Danke schonmal!

Gruss

Avatar user-271
06.07.2007 12:49

sollte es eigentlich sein....
function countlinks($string) {
preg_match_all("/<a.*?>/is",$string,$match);
return count($match[0]);
}


mhh...geht es auch irgendwie ohne RegExen...mir fällt grad keine methode ein, bin auch müde -.-

#!/bin/bash
traurig){ neutral:& };:
Avatar user-162
06.07.2007 14:01

theoretisch könntest du auch mit substr_count() überpfrüfen wie oft ein "href" im String vorkommt... dann hättest du auch (fast) alle Links.

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
Avatar user-271
06.07.2007 21:23

Original von user-162
theoretisch könntest du auch mit substr_count() überpfrüfen wie oft ein "href" im String vorkommt... dann hättest du auch (fast) alle Links.

nachteil: wenn der String dann ist: href href href href
dann siehts schlecht aus -.- aber das wird kaum einer schreiben Fettes Grinsen

#!/bin/bash
traurig){ neutral:& };:
user-152
16.07.2007 17:06

preg_match_all("/<a.*?>/is",$string,$match);

Diesen Ausdruck würde ich verfeinern, falls ein <a name=...> auch noch vorkommt.

Falls PHP5 vorhanden ist, kann man auch preg_replace() mißbrauchen.
Seit PHP5 gibt es hier einen 5 Parameter, der alle Ersetzungen mitzählt.
Natürlich wird dabei nicht wirklich ersetzt, man erfasst nur diesen Wert.

Avatar user-279
23.07.2007 06:21

Ich weiss langsam nicht mehr wie ich diese scheiss Spam bots bekämpfen soll. Zuerst ein Captcha rein -> war zu unsicher, dann ein besseres Captcha rein -> auch zu unsicher, dann diese Links-zählen Funktion -> und jetzt kommen Beiträge wie "Nice Website zwinkern" und als Webseite geben sie ihre Spam Adresse an.

Wie macht ihr das mit der ganzen Spam Geschichte? Hat jemand schonmal ein Filter gebaut, mit Bad-words und so?

Gruss

user-152
23.07.2007 07:35

Da stellt sich mir doch die Frage wie dein Captcha eingebaut wurde.

Avatar user-325
23.07.2007 08:59

Die Einträge kommen doch sicherlich von Servern ausm Ausland?

Dann könntest du die IPs sperren bwz. nur deutsche zulassen.
Hier gibt es eine CSV, mithilfe der man der IP das Land zuordnen kann: http://ip-to-country.webhosting.info/

PHP spricht hebräisch. lächeln
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM
Avatar user-279
23.07.2007 10:20

Hm, möchte lieber keine IP's sperren, da z.T. auch normale Einträge aus dem Ausland kommen. Ein Content Filter wäre wahrscheinlich die bessere Lösung meinst du nicht?

Avatar user-325
23.07.2007 10:23

dann viel spaß Fettes Grinsen sind doch nicht immer die selben einträge, wie du bereits festgestellt hast.

zeig mal dein gästebuch :rolleyes:

PHP spricht hebräisch. lächeln
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM
Avatar user-279
23.07.2007 10:27

nein, aber in den url's der webseite kommt ja meistens was mit porn oder produkten..

http://server25.hostpoint.ch/~zeroweb/vcit/?load=gaestebuch&add=new

user-152
23.07.2007 10:29

Original von user-325
Die Einträge kommen doch sicherlich von Servern ausm Ausland?

Dann könntest du die IPs sperren bwz. nur deutsche zulassen.
Hier gibt es eine CSV, mithilfe der man der IP das Land zuordnen kann: http://ip-to-country.webhosting.info/


Na ob das ne gute Idee ist, bei jedem Eintrag erst über 77000 Einträge abzusuchen ?
Denkt auch mal ein wenig an die Performance.

Avatar user-279
24.07.2007 11:05

thiemm? :rolleyes:

Avatar user-325
24.07.2007 11:21

Das Captcha sieht gut aus. Wundert mich, dass die Bots das knacken ;(

Handelt es sich vll dabei um ein fertiges Script? user-158n könnte es sein, dass die Bots die Grafik kennen und es somit kein Problem für sie ist.

Denn warum sollten sie sich ausgerechnet auf dein Gästebuch spezialisieren!?

PHP spricht hebräisch. lächeln
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM
user-152
24.07.2007 16:15

> Das Captcha sieht gut aus. Wundert mich, dass die Bots das knacken

Falsch, dass es funktioniert konnte ich eben selber testen.
Testeintrag 24.07.2007 - 18:16

Und dabei habe ich gar nicht das Captcha benutzt !
Das ist die Schwachselle beim Gästebuch !

Wenn jemand einfach kein Session-Cookie animmt (also Bots etc...) dann darf auch kein Eintrag erfolgen.
Dann nutzt auch ein Captcha nichts lächeln

Avatar user-279
24.07.2007 20:52

das script ist von bnightspeeder. die grafik von mir, fonts ausgetauscht, farben geändert usw.

danke für den hinweis, ich habe mal eine entsprechende Abfrage eingebaut. Scheint zu funktionieren.

user-152
25.07.2007 06:56

Besser wäre es wenn gleich ein Hinweis kommt, wenn kein Cookie angenommen wird.
Ist halt user-129utzerfreundlich lächeln

Avatar user-279
25.07.2007 11:26

naja ich denke nicht dass das oft vorkommen wird lächeln