Emailformular mit Spam-Schutz

Auch hiermit schickt ihr mir eine Email, also schreibt was nettes, damit ich mein "Helpers High" bekomme.

Wiederholen Sie
folgenden Code
(Dies verhindert SPAM)
   
Name
Email
Nachricht

 

 

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,aber ich habe ja auch noch eine andere Lösung und zwar ein Emailformular mit Spamschutz und Rechenaufgabe, welches auch auf PHP und Javascript basiert.

Das Script besteht aus Javascript und PHP.

<script type="text/javascript">
function eingaben_ueberpruefen(){
if (document.Form.eingabe.value.length != 5){
alert("Bitte geben Sie den Code ein!");
document.Form.eingabe.focus();
return false;
}
else
return true;
}

function RND(){
Zufall = Math.round(Math.random()*11+1);
document.Form.code.value=Zufall;
return Zufall;
}
</script>

Javascript

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()
Diese Funktion erzeugt einen Zufallswert von 1 bis 12. Es gibt insgesammt 12 Schlüssel oder 12 Bilder. Dieser Wert wird dem versteckten Formularfeld namens code zugewiesen.

<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) wird 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 und selbstverstänlich auch einen Senden Button.
</form>  

 

Die Überprüfung erfolgt auf der Seite formailer.php.

Email Funktion mit Spamschutz auf der Seite formailer.php

<?php

$email = $_POST["email"];
$UserName = $_POST["UserName"];
$nachricht = $_POST["nachricht"];

$dieMessage ="$UserName \n";
$dieMessage .= $nachricht;

if($_POST["eingabe"] !=""){
$eingabe = $_POST["eingabe"];
$eingabe = strtolower($eingabe);
$code = $_POST["code"];
}

 

$chluessel[1] = "fnpor";
$chluessel[2] = "tzuog";
$chluessel[3] = "hkllm";
$chluessel[4] = "oprst";
$chluessel[5] = "wwxsz";
$chluessel[6] = "ffcmy";
$chluessel[7] = "fkmvy";
$chluessel[8] = "xdfhj";
$chluessel[9] = "opwwj";
$chluessel[10] = "kmnpo";
$chluessel[11] = "ztzrr";
$chluessel[12] = "ufaxp";

// Spam-Schutz
if ($chluessel[$code] == $eingabe) {

mail("mail@on-design.de", "PHP Tipp Email", $dieMessage, "From:$email");
echo "Die Nachricht wurde verschickt";
}
else {
echo "Falsche Eingabe, oder bist du ein Spamprogramm?";
}

?>

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
mail("Empfängermail", "Betreff","Botschaft", "From: Absendermail")
Die Funktion mail() gibt bei Erfolg den Wert true und ansonsten den Wert false zurück.

  nach einem Tipp von http://www.homepage-total.de/
Spamschutz mit Rechenaufgabe | Session | Übersicht Ein Tipp von www.pastorpixel.de

 


Übersicht / Startseite Pastor Pixel