eintragugsakt "zerstören"
-
Servus,
ich bastel mir ein Gästebuch, wo unter anderem auch die Datei"eintragen.php" existiert:<?php
if (isset($_POST['eintragen'])) // Prüft ob das Formular abgeschickt wurde
{
//Nachricht etc. wird eingetragen....if (!$result) { die('<b>Fehler:</b>' . mysql_error());}
else {echo "<img src=\"successful.png\" />Erfolgreich eingetragen. <br /> <a href=\"index.php\">Zurück</a>";
}
else {echo "Fehler: Bitte nur über das Formular Einträge vornehmen!";}
?>Funktioniert soweit auch aber wenn ich nun die ganze zeit F5 drücken würde, würde der Eintag x-mal vorgenommen werden. Kann ich das verhindern?
Irgendwie ein $_POST['eintragen'].destry() oder so xD?
-
Hallo,
nein -> die Seite wird beim F5 (inkl. Inhalt und übergebene Daten) neu geladen. Du könntest in der Datenbank (sofern vorhanden) prüfen ob schon ein Eintrag mit den übergebenen Informationen (Titel, Text, Mail, Homepage, usw.) existiert.
VlG
-
Besser wäre eine Cookie/IP-Sperre. Das würde es auch Spam-Bots schwerer machen.
-
eine weitere Moeglichkeit wäre die Überprüfung über ein Token.
Beim Laden der Seite generierst du ein Token (Hash, Key o.ä) und speicherst diesen einmal z.B. in einer Session sowie im Formular in einer hidden. Beim Absenden des Formulares prüfst du, ob der Token in der Session mit dem im Post-Request übereinstimmt. ist dies der Fall, dann speichern, ansonsten überspringen.
-
hjkhj schrieb:
Besser wäre eine Cookie/IP-Sperre. Das würde es auch Spam-Bots schwerer machen.
Hallo,
IP-Sperren sind nicht sinnvoll, wenn die Gefahr besteht dass mehrere Nutzer (am gleichen Knoten) dadurch gesperrt werden könnten. Cookies wären eine Lösung, allerdings auch nur dann wenn der Browser Cookies akzeptiert.
VlG