In dieses Emailformular wurde ein Spamschutz eingebaut. Erstellt euch eure eigenen Bilder mit anderen Buchstaben und passt den Code auf dieser Seite entsprechend an. (Es ist nicht erlaubt meine Bilder zu nehmen. Ihr dürft aber meine Schriftart benutzen.) Bedenkt, dass ihr mit diesem Script sehbehinderte Menschen außen vor lasst.
Das Script besteht aus Javascript und PHP.
<script type="text/javascript"> function RND(){ |
Hier wird die Funktion namens eingaben_ueberpruefen() definiert, welche im Formular beim klicken onSubmit aufgerufen wird. Das Formular muss die Bezeichnung "Form" haben. Das Feld, in dem man die Zeichen eingibt, muss die Bezeichnung "eingabe" bekommen. Die Anzahl der einzugebeneden Zeichen sind hier 5. Siehe unten, die Schlüssel bestehen alle aus 5 Buchstaben. RND() |
<body onLoad="document.Form.eingabe.focus();"> | Javascript im Bodytag, der Cursor wird auf das Eingabefeld gesetzt. |
<form name="Form" action="formailer.php" method="post" onSubmit="return eingaben_ueberpruefen(this.form)"> |
Beim Abschicken (onSubmit) wire die Javascript Funktion aufgerufen, welche überprüft ob im Feld "eingabe" 5 Zeichen eingegeben wurden. Ist das nicht Fall, wird false zurückgegeben und es wird nichts verschickt. |
<input type=hidden name="code"> | Verstecktes Feld, es bekommt seinen Wert von der Javascriptfunktion RND(), siehe oben, siehe nächste Zeile. |
<script type="text/javascript">document.write('<img src="'+RND()+'A.gif" width=210 height=50>');</script> | Per Javascript wird das Bild eingefügt. Es wird aus dem Wert von RND() und dem Namen des Bildes zusammengesetzt. Außerdem wird erst jetzt, bei Aufruf der Funktion RND() dem versteckten Feld "code" der Wert zugewiesen. |
<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 formailer.php.
Email Funktion mit Spamschutz auf der Seite formailer.php | |
<?php
$chluessel[1] = "fnpor"; // Spam-Schutz ?> |
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.
Dann wird überprüft, ob im Feld eingaben ein Wert eingetragen wurde. Alle Buchstaben werden in Kleinbuchstaben umgewandelt und der PHP Variablen $eingabe übergeben. Außerdem wird der Wert des Formularfeldes code der PHP Variablen $code übergeben.
Es folgt ein Array, welches alle Zeichen der Bilder enthält und zwar in der gleichen Reihenfolge, wie es in den Bildern zu sehen ist. Dann wird überprüft, ob der Wert des Arrayelementes mit dem Wert des Bildes übereinstimmt. Ist das der Fall, 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 |
nach einem Tipp von http://www.homepage-total.de/ | |
Spamschutz mit Rechenaufgabe | Session | Übersicht | Ein Tipp von www.pastorpixel.de |