Captcha-Sicherheitsbild: Einbinden
Einbinden in das Kontaktformular bzw. in das Gästebuch:
Es sollte beim Sichern Ihrer Scripte jeweils das Captcha selbst sowie das jeweilige Eingabefeld angezeigt werden.
Quellcode für das Anzeigefeld des Bildes:
<img src="captcha/captcha.php" border="0" title="Sicherheitscode">
Quellcode für das Eingabefeld:
<input type="text" name="sicherheitscode" size="5">
Sie können es natürlich auch in eine Tabelle einbinden. Ein Beispiel in Form eines Kontaktformular sehen Sie unten:
<html><head><title>Captcha</title></head>
<body>
<form action=mailer.php method="POST">
<table>
<tr><td>Nachname</td><td><input type=text name=Nachname></td></tr>
<tr><td>Vorname</td><td><input type=text name=Vorname></td></tr>
<tr><td>Beruf</td><td><input type=text name=Beruf></td></tr>
<tr><td>Betreff</td><td><input type=text name=betr></td></tr>
<tr><td>E-Mail</td><td><input type=text name=mailaddi></td></tr>
<tr><td>Empfänger E-Mail-Adresse</td><td><input type=text name=empf></td></tr>
<tr>
<td><img src="/script_test/captcha.php" border="0" title="Sicherheitscode"></td>
<td><input type="text" name="sicherheitscode" size="5"></td>
</tr>
<tr><td colspan=2 align=middle><input type=submit value="abschicken"></td></tr>
</table>
</form>
</body>
</html>
Einbinden in das Mailerscript:
Es muss nun geprüft werden, ob der eingegebene Code im Formular identisch mit dem des Bildes/Captchas ist. Dies geschieht erst in dem Script, welches Sie per Formular aufrufen lassen. Unten sehen Sie ein Beispielcode, welcher die o.g. Sicherheitsvorkehrungen prüft.
<?
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam'])
{
unset($_SESSION['captcha_spam']);
$mail_empfaenger=$_POST['empf'];
$mail_absender=$_POST['mailaddi'];
$betreff=$_POST['betr'];
$text="Mein Name ist $_POST['Vorname'] $_POST['Nachname'], von Beruf bin ich $_POST['Beruf']";
mail($mail_empfaenger, $betreff, $text,"from:$mail_absender");
echo "Die E-Mail wurde erfolgreich versendet";
}else
{
die ("Der Sicherheitscode ist falsch!");
}
?>
