Hi Leute,
ich programmiere gerade ein Formular, in das man Kommentare eintragen kann.
Damit der Kommentar nicht mehrfach in die Datenbank eingefügt wird, wenn man die Seite refresht, habe ich einen Mechanismus entwickelt, bei dem der Kommentar bei jedem weiteren Mal abschicken in einem hidden-Feld mitgeschickt wird.
Beim Absenden des Formulars wird so überprüft, ob das hidden-Feld "last" den gleichen Wert hat, wie der abgeschickte Kommentar.
Ich frage mich jetzt nur, wo mein Denkfehler liegen könnte, da dieser Mechanismus vorhin schonmal funktioniert hat, und jetzt leider nicht mehr. Ich weiß aber leider auch nicht, nach welcher Code-Änderung das wohl passiert sein könnte.
Vielleicht habt ihr eine Idee, wo mein Denkfehler liegen könnte.
Hier der dazugehörige Codeschnipsel:
ich programmiere gerade ein Formular, in das man Kommentare eintragen kann.
Damit der Kommentar nicht mehrfach in die Datenbank eingefügt wird, wenn man die Seite refresht, habe ich einen Mechanismus entwickelt, bei dem der Kommentar bei jedem weiteren Mal abschicken in einem hidden-Feld mitgeschickt wird.
Beim Absenden des Formulars wird so überprüft, ob das hidden-Feld "last" den gleichen Wert hat, wie der abgeschickte Kommentar.
Ich frage mich jetzt nur, wo mein Denkfehler liegen könnte, da dieser Mechanismus vorhin schonmal funktioniert hat, und jetzt leider nicht mehr. Ich weiß aber leider auch nicht, nach welcher Code-Änderung das wohl passiert sein könnte.
Vielleicht habt ihr eine Idee, wo mein Denkfehler liegen könnte.
Hier der dazugehörige Codeschnipsel:
PHP-Code:
$last_post = $_POST['kommentar'];
echo "<br>last:".$last_post;
//wenn User angemeldet, dann Berechtigung Kommentare zu schreiben
if($_SESSION['user']){
$output .= "\t\t".'<form action="projekt_view.php" method="post" class="input">'."\n";
$output .= "\t\t\t\t".'<textarea name="kommentar" cols="60" rows="10" style="float:left;"></textarea>'."\n";
$output .= "\t\t".'<div class="komm" style="padding:10px; float:left;">'."\n";
$output .= "\t\t\t".'<h1><input type="submit" value="Kommentar absenden"></h1>'."\n";
$output .= "\t\t\t".'<input type="hidden" name="komm" value="sent">'."\n";
$output .= "\t\t\t".'<input type="hidden" name="last" value="'.$last_post.'">'."\n";
$output .= "\t\t\t".'<input type="hidden" name="id" value="'.$this->projekt_id.'">'."\n";
$output .= "\t\t".'</div>'."\n";
$output .= "\t\t".'</form>'."\n";
if($_POST['kommentar']==""&&$_POST['komm']=="sent"){
$output .= "\t\t".'<br>'."\n";
$output .= "\t\t".'<br>'."\n";
$output .= "\t\t".'<h3 style="clear:both; padding:10px;">Bitte trage einen Kommentar ein!</h3>'."\n";
}
//in der folgenden Abfrage liegt der Knackpunkt:
elseif($_POST['kommentar']&&$_POST['last']!=$_POST['kommentar']){
echo "<br>POST-KOMMENTAR: ".$_POST['kommentar'];
//der echo-Wert POST-LAST-POST wird leider nicht ausgegeben
echo "<br>POST-LAST-POST: ".$_POST['last'];
echo "<br>ID: ".$_POST['id'];
//schreiben der Werte in die DB
}
}
Kommentar