In dieses Emailformular habe ich einen Spamschutz eingebaut, der auf einer kleinen Rechenaufgabe basiert. Ich weiß nicht genau wie sicher es ist, bzw. wie gut Spamprogramme mittlerweile auf solche Aufgaben, reagieren. Ein weiterer Vorteil bei dieser Funktion ist, dass Leute, die nicht rechnen können, einen nicht mit Emails belästigen. Wenn ihr das Niveau noch weiter erhöhen wollt, erhöht einfach die Zahlen oder stellt schwierigere Aufaben... Wurzel ziehen etc. :)
Das Script besteht aus Javascript und wird auf der mailer.php mit PHP ausgewertet.
<script type="text/javascript"> function wert2(){ |
Das Formular muss die Bezeichnung "Form" haben. Das Feld, in dem man das Ergebnis eingibt, muss die Bezeichnung "eingabe" haben.
wert1() wert2() aufgabe()
|
<body onLoad="document.Form.eingabe.focus();"> | Javascript im Bodytag, der Cursor wird auf das Eingabefeld gesetzt. |
<form name="Form" action="mailer.php" method="post"> |
Das Formular sendet die Daten mit POST an die Seite "mailer.php". |
<input type=hidden name="alter"> <input type=hidden name="firma"> <input type=hidden name="status"> |
Die versteckten Felder bekommen ihre Werte von den Javascript Funktionen siehe oben, siehe nächste Reihe. |
<script type="text/javascript">document.write(wert1()+' '+aufgabe()+' '+wert2()+' =');</script> | Per Javascript wird die Rechenaufgabe erzeugt. Die 3 Funktionen wert1(), wert2() und aufgabe(), weisen den versteckten Feldern die Werte zu und außerdem wird mit document.write die Aufgabe erzeugt. |
<input name="UserName" type="text" id="UserName" size="40" maxlength="40" class="textfeld"> <input name="email" type="text" id="email" size="40" maxlength="40" class="textfeld"> <textarea name="nachricht" cols="40" rows="5" wrap="PHYSICAL" id="nachricht"></textarea> <input type=submit value="Senden"> |
weitere Eingabefelder, wie gehabt. |
</form> |
Die Überprüfung erfolgt wird auf der Seite mailer.php
Email Funktion mit Spamschutz auf der Seite mailer.php | |
<?php // Spam-Schutz if($aufgabe){
if ($wert == $eingabe) { ?> |
Zu Anfang werden die Formularfelder, die mit Post versendet wurden empfangen. Anschließend werden die User-Eingaben mit Verkettungsoperator Verkettungsoperator .= an die Variable $dieMessage übergeben. Die Werte von $dieMessage werden später verschickt. Die Eingabe wird der Variablen $eingabe übergeben. Entspricht $wert der $eingabe wird die Email verschickt und per Echo ein Hinweis ausgegeben. Ist das nicht der Fall, kommt der Hinweis, das hier was nicht stimmt.
Die Email Funktion hat 4 Parameter, die mit
Komma getrennt werden |
Session | Übersicht | Ein Tipp von www.pastorpixel.de |