Guten Tag,
ich habe mir seit längerem Gedanken gemacht wie ich mein Konatkformular, Kommentarformular bzw. mein Newsletterformular vor sogenannten Spammern schützen könnte. Nach langem lesen verschiedenster Meinungen habe ich mich dafür entschieden den Lösungsansatz von der Site http://www.php-kurs.com/e-mail-und-sicherheit.htm leicht angepasst zu verwenden. Der Sinn dieses Scriptes ist es ungewollte Wörter bzw. Zeichen die für Spammer wichtig sind zu filtern und den Versendevorgang zu stoppen bis diese nicht erlaubten Zeichen entfernt wurden. Doch leider funktioniert etwas noch nicht richtig und es erscheint nach mehrmaligem anpassen immer noch folgende PHP Warnung:
Die Warnung:
Warning: preg_match() [function.preg-match]: Unknown modifier ‚d‘ in /is/htdocs/__root__/__dir__/__file__.php on line 71
Code-Ausschnitt, ab Linie 71:
if (preg_match("/(to:expressionless:cc:expressionless:bcc:expressionless:from:expressionless:subject:expressionless:reply-to:expressionless:content-type:expressionless:MIME-Version:expressionless:multipart/mixed|Content-Transfer-Encoding:smile:/ims", $input)) {
$eingabefehler .= "- NO SPAM PLEASE
";
}
if (preg_match("/%0A|\r|%0D|\n|%00|\0|%09|\t|%01|%02|%03|%04|%05|%06|%07|%08|%09|%0B|%0C|%0E|%0F|%10|%11|%12|%13/i", $input)) {
$eingabefehler .= "- NO SPAM PLEASE
";
}
Zur Erläuterung:
Der oben aufgeführte Code ist im Quelltext unterhalb von anderen Validierungs Funktionen die mittels if (isset($_POST["__feldname__"])) {
if (strlen(__$inputfeld__) überprüfen ob das Feld weder leer ist und eine mindest Anzahl an Zeichen geschrieben wurde. Die Variable $input beinhaltet bei mir eine Aufzählung der __feldnamen__ des jeweiligen Formulars.
Meine Frage:
Habe ich nur einen Tippfehler oder ist mir da ein „Denkfehler“ unterlaufen, denn ich nicht beachtet habe. Was muss ich verbessern bzw. umschreiben?
Ich bin über jede Antwort dankbar und freue mich besonders über Lösungsvorschläge aber natürlich auch über Hinweise! Vielen Dank im Voraus! Beste Grüße!