Yerf!
Also, das Script für das Formular wird per Include auf der Hauptseite eingefügt. In diesem Inculde steht der html code für das Formular, nebst Javascript chkanfrage(). So wie ich das verstehe (bitte habt Rücksicht, bin nur Azubi) wird "action" erst ausgeführt, wenn chkanfrage() erfolgreich durchlaufen wird, oder?
Wenn JavaScript ausgeführt wird, dann ja. Ohne JS wird aber sofort abgeschickt und SpamBots schicken sowieso meist einen direkten Request auf die Zieladresse ab. Da kann man aber auch nichts weiter dagegen machen. Deshalb kommt ja am Server ebenfalls nochmal eine Überprüfung.
Nunja... wird das Formular abgeschickt, wird die Seite kontakt_insert.php aufgerufen, auf der die eingegeben Daten per PHP überprüft werden. Hier ist bereits ein Spamfilter eingebaut, der bestimmte Emailadressen sperrt. Werden die Daten als korrekt eingestuft, wird auf kontakt_insert.php ein Include aufgerufen, der die Daten dann an die Mailadresse des Kunden und an die Datenbank weiterschickt.
Sieht soweit ganz gut aus. Aufgrund der ersten etwas ungenauen Beschreibung hatte ich nur befürchtet, dass nach der Server-Prüfung nochamls eine Art Vorschau kommt die nochmals abschickt wird und dann ohne weitere Prüfung verarbeitet wird. Das wäre gefährlich gewesen.
Ich hoffe, ich konnte die Arbeitsweise jetzt verdeutlich. Ich denke, man muss bei kontakt_insert.php und/oder bei kontakt_verschicken.inc ansetzen.
Ja, sieht auch ganz vernünftig aus. Was mich etwas wundert ist das bei einem händischen Test die Spam-Prüfung zuschlägt, bei den Einträgen des Bots aber nicht. Oder war es in diesem Fall die JS-Prüfung?
Der Bot trägt sich IMMER mit einer yahoo Absenderadresse ein. Deswegen habe ich erst mal eine Sperrung dieser Adresse eingerichtet. Das PHP Script überprüft das Feld $EMAIL auf den str "yahoo". Wird dieser erkannt erfolgt ein die() Befehl.
Hier im Forum wurden schon öfters verschiedene Vorschläge zur Spam-Minimierung diskutiert (wie z.B. durch CSS versteckte Felder). Das Archiv sollte einiges hergeben.
Gruß,
Harlequin
<!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->