Karl.
Registrierter Benutzer
- Zuletzt hier
- 25.07.22
- Registriert
- 27.09.06
- Beiträge
- 438
- Kekse
- 512
hallo liebe gemeinde.
unser gästebuch wird seit einiger zeit mit spam zugemüllt. deshalb wollte ich es mit einem "captcha" schützen.
sieht auch alles prima aus.
das problem ist aber, dass ich auch ohne den richtigen code einzugeben, nachrichten schreiben kann.
ich tippe auf eine nicht geschlossene "if"-bedingung.
was meint ihr?
unser gästebuch wird seit einiger zeit mit spam zugemüllt. deshalb wollte ich es mit einem "captcha" schützen.
sieht auch alles prima aus.
das problem ist aber, dass ich auch ohne den richtigen code einzugeben, nachrichten schreiben kann.
ich tippe auf eine nicht geschlossene "if"-bedingung.
was meint ihr?
Code:
<?php
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
}
// Dateiname in Variable speichern
$datei = "comment.txt";
// Variable Kommentar gesetzt? Name und E-Mail nicht leer?
if (isset($_POST['comment']) && $_POST['name'] != "" && $_POST['email'] != "") {
$comment = $_POST['comment'];
$name = $_POST['name'];
$email = $_POST['email'];
// Datei wird zum Schreiben-Lesen geöffnet
$zeiger = fopen($datei, "r+");
// alte Daten herauslesen und in $alt sichern
$alt = fread($zeiger, filesize($datei));
// E-Mail-Link entsteht
$email = "<a href=\"mailto:$email\">$email</a>";
// Datum ermitteln und formatieren
$datum = date("j.n.Y");
// HTML-Zeichen maskieren, Slashes entfernen, Zeilenumbrüche erhalten
$comment = htmlspecialchars($comment);
$comment = stripslashes(nl2br($comment));
// Meinung "zusammensetzen"
$meinung="<p><b>$name</b> ($email) schrieb am <i>$datum</i>:<br>$comment</p>\n";
// unsichtbarer Cursor marschiert zum Anfang
rewind($zeiger);
// neue Meinung vor alte in Datei schreiben:
fputs($zeiger, "$meinung \n $alt");
// Datei schließen
fclose($zeiger);
}
// Datei komplett anzeigen
readfile($datei);
?>
- Eigenschaft