SPAM Problem im Gästebuch
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abschneiden
anfnger
beitrag
center
checken
datei
eintrag
error
erste
fitne
folgende fehlermeldung
funktion
gstebuch
komme
letzte
mensch
parameter
skript
sperren
spieker
-
Leider bekomme ich immer mehr SPAM Einträge im Gästebuch... Immer derselbe Eintrag, jeweils von einem anderen Namen... Der Text lautet immer abc123... Habe schon einige Abfragen in dem Skript, aber die will irgendwie nicht funktionieren...
if(strlen($name)<3){
//Kein richtiger Name eingegeben
$error_msg="Bitte geben Sie Ihren Namen an";
}
if(strlen($eintrag)<3){
//Kein Eintrag vorgenommen
$error_msg.="<br>Bitte geben Sie auch etwas in das Gästebuch ein.";
}
if(strstr($eintrag)="abc123"){
// SPAM
$error_msg.="<br>Kein richtiger Eintrag.";
}
Die ersten beiden Abschnitte gehen, nur am letzten hapert es... Bin leider nur PHP-Anfänger und denke, dass dieses Problem wahrscheinlich sehr leicht zu beheben ist und ich komme mal wieder nicht drauf... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Leider bekomme ich immer mehr SPAM Einträge im Gästebuch... Immer derselbe Eintrag, jeweils von einem anderen Namen... Der Text lautet immer abc123... Habe schon einige Abfragen in dem Skript, aber die will irgendwie nicht funktionieren...
if(strlen($name)<3){
//Kein richtiger Name eingegeben
$error_msg="Bitte geben Sie Ihren Namen an";
}
if(strlen($eintrag)<3){
//Kein Eintrag vorgenommen
$error_msg.="<br>Bitte geben Sie auch etwas in das Gästebuch ein.";
}
if(strstr($eintrag)="abc123"){
// SPAM
$error_msg.="<br>Kein richtiger Eintrag.";
}
Die ersten beiden Abschnitte gehen, nur am letzten hapert es... Bin leider nur PHP-Anfänger und denke, dass dieses Problem wahrscheinlich sehr leicht zu beheben ist und ich komme mal wieder nicht drauf...
probiers mit if($eintrag == "abc123") oder bei deiner abfrage == statt =. was aber wahrscheinlich sinnvioller wäre, dass man nur jede halbe stunde eintragen kann und das solange bis der keine lust mehr hat oder die ip speichern und zur polizei gehen oder ihm damit drohen oder sonstiges -
Ist es ein Bot oder ein Mensch der spammt?
Wenn es ein Bot ist, kannst du vielleicht einfach nen Case machen, wo man ankreuzen muss, und mit einer if-Abfrage immer bei false eine Errormeldung rausgeben. Ich hatte mal so was, ging eigentlich immer.
Wenn's ein Mensch ist, vielleicht einfach ne Sperre, das man nur alle 24 Stunden was schreiben kann?
mfg
kt -
Danke, werde das nachher mal ausprobieren... :)
Ja, ein IP-Sperre komme auch noch rein, das war aber erst wichtiger... Schließlich kann es ja sein, dass die IP alle paar Minuten gewechselt wird...
Tippe mal drauf, dass es ein Bot ist (3-4 Einträge pro Tag, zu jeder Tages- und Nachtzeit)...
Wie meinst du das mit der case-Sache und der Abfrage...? -
In der Datei wo er reinschreib machst du so ne Case, wo man anklicken kann. nenn sie <... name='check'...>
In der Datei die in die DBs schreibt :
£POST_[check] = $check;
...
if ($check == false)
{echo 'Error';
}
else{
//dein skript
}
ist möglich dass der code voller fehler ist^^
vom prinzp her ist es aber richtig
mfg
kt -
probiers mit if($eintrag == "abc123") oder bei deiner abfrage == statt =.
Funktioniert leider nicht... Es wird trotzdem eingetragen und ich bekomme folgende Fehlermeldung:
Warning: Wrong parameter count for strstr() in /home/httpd/vhosts/fitness-center-spieker.de/httpdocs/gaestebuch/gaestebuch.php on line 33
if(strstr($eintrag=='abc123')){
// SPAM
$error_msg.='<br>Kein richtiger Eintrag.';
}
oder
if(strstr($eintrag)=='abc123'){
// SPAM
$error_msg.='<br>Kein richtiger Eintrag.';
} -
if(strstr($eintrag)='abc123')
Das kann garnicht funktionieren, da die Funktion strstr() zwei Parameter verlangt als Erstes die Zeichenkette, in der gesucht werden soll und als zweites das Suchwort. Also müsste das folgender Maßen aussehen.
if(strstr($eintrag,"abc123")!=false) -
Wie kann ich es denn machen, dass einfach nur nach "abc123" gesucht wird... Gibt es eine bestimmte String-Funktion dafür...? Nur mit str geht es nicht... Die Funktion gibt es anscheinend nicht...
if(str($eintrag)='abc123')
Sorry, mit deiner Funktion geht es wohl auch nicht:
if(strstr($eintrag,'abc123')!=false){
//SPAM
$error_msg.='<br>Kein richtiger Eintrag.';
}
Folgende Fehlermeldung bekomme ich:
Parse error: parse error in /home/httpd/vhosts/fitness-center-spieker.de/httpdocs/gaestebuch/gaestebuch.php on line 35
Beitrag geändert: 1.11.2006 22:57:27 von sebastianvogt -
if (strstr($eintrag, "abc123")) { // Spam ... }
Beitrag geändert: 1.11.2006 22:57:30 von trueweb -
if (strstr($eintrag, "abc123")) { // Spam ... }
Beitrag geändert: 1.11.2006 22:57:30 von trueweb
DANKE, hat funktioniert :) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage