Tobias Kloth: Kontakt-Formular mit Spam-und Kontrollschutz

Beitrag lesen

Hallo Robert,

Ersteinmal vielen Dank für eure damalige Hifle beim Script.

*argh* ich meinte natürlich, dass du im _gleichen_ Thread (->[pref:t=73227&m=421562]) nochmal nachfragen sollst ...

Das kann darin liegen, dass wen jemand so fies ist und eine Minute lang die Enter Taste drückt, dass die Nachricht dann hunderte Mal abgeschickt wird.

och, das geht noch viel fieser :-) (nein, ich verrate nicht, wie)

  • EMail Adresse kontrolliert (ein @ Zeichen und mind. ein Punkt)

das dürfte sich mit einem regulären Ausdruck lösen lassen: /^(.+?)@(.+?).(.+?)$/ (ungetestet) und das dann in preg_match (->http://de3.php.net/preg_match) einsetzen

  • Kontrollieren des Textinhaltest auf (B)CC-Header (ausschließen)

du musst nur das was du an den 4.Parameter der Funktion mail übergibst daraufhin überprüfen - am sinnvollsten prüfst du ob wirklich nur eine E-Mailadresse in dem String vorkommt, also wirklich nur ein @ (such dir eine passende Stringfunktion auf http://de2.php.net/ref.strings dafür aus :-))

  • IP Sperre, damit jemand nur jede halbe Stunde eine Mail schicken kann

dafür müsstest du die IP-Adresse nach dem Versenden der Mail z.B. in einer Textdatei zusammen mit dem Zeitpunkt speichern, und immer vor dem Versenden der Mail prüfen, ob ein Eintrag in der Datei vorhanden ist und wenn ja, wie alt der schon ist. Das Problem an der Methode ist nur, dass die Zuordnung IP - User nicht eindeutig sein muss - AOL verwendet afaik Proxies, so dass mehrere User die selbe IP haben können.

  • Sperre, dass das Formular nur einmal abgesandt werden kann (und nicht ständig auf Enter klicken oder die Dankseite aktualisieren)

dafür könntest du bei jedem Aufruf des Formulars eine ID generieren, die als hidden-Feld mit an die Datei mailer.php geschickt wird - diese Datei prüft dann ob mit dieser ID schonmal eine Mail verschickt wurde, und wenn nein, wird die Mail verschickt und die ID gespeichert (so ähnlich funktioniert das hier im Forum übrigends auch).

Ich hoffe, dass das mir jemand ins Script einbauen kann, da ich PHP noch nicht so gut kann.

nein, wir sind hier bei _self_html und nicht bei _get_html - wenn du Hilfe brauchst, den Code selbst zu schreiben, bekommst du auch aber fertige Scripte gibt es nicht.

if($abschicken == "Absenden")

warum ignorierst du eigentlich das Array $_POST?

Grüße aus Nürnberg
Tobias

--
Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|