22.07.2012, 18:22
Nabend Zusammen!
Seit kurzem beschäftige ich mich nun mit PHP und habe mir auch ein paar Kleinigkeiten selber geschrieben, allerdings sind meine Fähigkeiten noch sehr grundliegend. Seit wenigen Tagen erhalte ich über ein von mir geschriebenes Kontaktformular massiven Spam und habe mir folglich überlegt ein Captcha einzubauen. Allerdings scheine ich einen Fehler gemacht zu haben, sodass immer das Captcha als falsch angesehen wird.
Kontaktformular:
Seit kurzem beschäftige ich mich nun mit PHP und habe mir auch ein paar Kleinigkeiten selber geschrieben, allerdings sind meine Fähigkeiten noch sehr grundliegend. Seit wenigen Tagen erhalte ich über ein von mir geschriebenes Kontaktformular massiven Spam und habe mir folglich überlegt ein Captcha einzubauen. Allerdings scheine ich einen Fehler gemacht zu haben, sodass immer das Captcha als falsch angesehen wird.
Kontaktformular:
Code:
<form action="http://madmatti.de/index.php?site=check" method="post">
</br>Name:
</br><input type="text" name="name">
</br></br>Email:
</br><input type="text" name="email">
</br></br>TSPort/web Benutzername*:
</br><input type="text" name="reference">
</br></br>Nachricht:
</br><textarea rows="10" cols="55" name="text">Bitte so ausführlich wie möglich sein!</textarea>
</br>
</br><img src="captcha/captcha.php" border="0" title="Sicherheitscode">
</br><input type="text" name="sicherheitscode" size="5">
</br><input type="submit" value="Absenden">
</form>
Davor und danach ist selbstverständlich etwas Text, der ist aber wohl irrelevant.
Die check.php sieht wie folgt aus:
PHP-Code:
<?php
##captcha##
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam'])
{
unset($_SESSION['captcha_spam']);
##Variablen einbauen##
$name = $_POST["name"];
$absender = $_POST["email"];
$reference = $_POST["reference"];
$text = utf8_decode($_POST["text"]);
$text = str_replace("\r\n", '<br />', $text);
$mymail = "***zensiert***";
$betreff = "Neue Supportanfrage via Formular";
if($reference == "")
{
$reference = "nicht angegeben";
}
##Leer überprüfen##
if($name == "" OR $absender == "" OR $text == "")
{
echo "Es wurden nicht alle nötigen Felder ausgefüllt.";
echo "<input type=\"button\" value=\"Zurück\" onClick=\"history.back();\">";
}
else
{
$text .= "\n \n Name: $name \n Absender: $absender \n Benutzername/Teamspeak 3 Port: $reference";
mail("$mymail", "$betreff", "$text", "from:$absender");
echo "Vielen Dank für die Kontaktaufnahme. Wir werden uns schnellstmöglich bei dir melden.";
}
}
else
{
die ("Der Sicherheitscode ist falsch!");
}
?>
Die Dateien sind beide im Hauptverzeichnis von meinem Webspace Benutzer, dort befindet sich ebenfalls ein Ordner namens "captcha", welche die Dateien captcha.php, captcha.PNG und XFILES.TTF beinhaltet.
Wahrscheinlich habe ich irgendwo einen dummen Anfängerfehler gemacht, aber ich komme einfach nicht drauf und wäre über etwas Hilfe sehr dankbar!
Mfg Madmatti