Wie Textarea validieren?
am 16.08.2008 - 13:41 Uhr in
Hallo zusammen,
in einem Kontaktformular habe ich eine Textarea, in dem Seitenbesucher Nachrichten schreiben können.
Jetzt passiert es leider immer wieder, dass Spambots da Nonsense Einträge vornehmen und eine Reihe von URLs automatisch in dieses Feld pasten.
Natürlich könnte ich den Inhalt dieses message Feldes in der Validierung durch die Funktion filter_xss(..) senden, um die URLs rauszufiltern.
Das will ich aber nicht, denn im Grunde will ich die Spam Mails aus den Formularen gar nicht bekommen. Ein Captcha soll aus ästhetischen Gründen nicht eingesetzt werden.
Kann ich denn für eine Textarea definieren, dass sie nur reinen Text annimmt und ansonsten
einen Formular-Error setzt?
Ich habe leider noch nichts Entsprechendes gefunden. Die Filter Funktionen wandeln ja einfach alles Unerwünschte um und senden das Formular trotzdem.
Danke & Grüsse
Rhodes
- Anmelden oder Registrieren um Kommentare zu schreiben
Du kannst mit
am 16.08.2008 - 14:06 Uhr
Du kannst mit Hook_form_alter eine extra Submitfunktion hinzufügen
Leider weiß ich nicht ob du 5 oder 6 benutzt
Dann müsstest du einfach prüfen
<?php if ($body != filter_xss($body)) {form_set_error("body", "hallo das darfst du nicht"); } ?>
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Danke
am 18.08.2008 - 13:57 Uhr
ich habe es jetzt so gemacht, wie Du vorgeschlagen hast: also in der Validierungsfunktion des Formulares überprüfe ich, ob der Inhalt gleich mit dem ist, was von filter_xss() zurückgeliefert wird. Als eralubte Tags übergebe ich ein leeres Array. Nein heisst, es sind tags umgewandelt worden, dann setze ich einen Fehler im Formular.
Funktioniert Prima. Danke & Grüsse
Rhodes