Neue Nachricht im Gästebuch erst nch reload sichtbar
andi
- php
Hallo,
ich habe eine guestbook.php (mittles mySQL) die sich beim Absenden des Formulars weider selbst aufruft.
<form name="guestbook" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"><br />
Nach dem Absenden erscheint wie gewünscht die Meldung "Danke für ihren Eintrag". Aber man sieht den Eintrag noch nciht. Erst wenn man die Seite neu lädt, erscheint er. Woran könnte das liegen? Wird der entspr. SQL-Befehl zum Anzeigen aller Einträge nach dem Formular-Absenden gar nicht durchlaufen?
danke
Hallo Andi,
Nach dem Absenden erscheint wie gewünscht die Meldung "Danke für ihren Eintrag". Aber man sieht den Eintrag noch nciht. Erst wenn man die Seite neu lädt, erscheint er. Woran könnte das liegen? Wird der entspr. SQL-Befehl zum Anzeigen aller Einträge nach dem Formular-Absenden gar nicht durchlaufen?
Woher sollen wir das wissen? Den Code enthältst du uns ja vor ... Ich würde aber mal darauf tippen, dass die anzuzeigenden Einträge aus der Datenbank geholt werden und erst anschließend wird der neue Eintrag gespeichert.
Gruß,
Tobias
Ich würde aber mal darauf tippen, ...
BINGO :) danke
Hi!
<form name="guestbook" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"><br />
Das direkte Einfügen von vom Benutzer manipulierbaren Daten ist eine Sicherheitslücke. PHP_SELF gehört dazu, denn das kann man mit Queryparametern beliebig erweitern. htmlspecialchars() reicht zum Entschärfen.
Nach dem Absenden erscheint wie gewünscht die Meldung "Danke für ihren Eintrag". Aber man sieht den Eintrag noch nciht. Erst wenn man die Seite neu lädt, erscheint er. Woran könnte das liegen?
Vermutlich falsche Reihenfolge beim Abarbeiten.
Wird der entspr. SQL-Befehl zum Anzeigen aller Einträge nach dem Formular-Absenden gar nicht durchlaufen?
Das kannst du prüfen, indem du eindeutige Kontrollausgaben an den strategisch wichtigen Stellen einfügst und so den Ablauf verfolgst, falls du das nicht aus dem Quelltext lesen kannst.
Lo!