Hallo zusammen,
das folgende Skript soll mir Daten in die DB schreiben, was es auch tut. Um allerdings doppelte Einträge zu vermeiden, soll nach dem ersten Klick auf speichern kein weiteres speichern möglich sein.
Im Formular klappt das auch. Wenn ich den Browser aktualiere, wird anstatt des Buttons der Text "Bereits gespeichert" angezeigt. So wie es sein soll. Das Skript funktioniert aber nur so.
Wenn ich mehrmals auf speichern drücke, wird der Satz auch mehrfach gespeichert. WEin Unique-Feld nützt mir nicht, das der Zählerstand sich ändert.
Ich dachte, mit der selben if-Bedingung wie im Formular, aber das haut nicht hin.
Wo ist mein Fehler, kann mir mal jemand helfen ! ! !
das folgende Skript soll mir Daten in die DB schreiben, was es auch tut. Um allerdings doppelte Einträge zu vermeiden, soll nach dem ersten Klick auf speichern kein weiteres speichern möglich sein.
Im Formular klappt das auch. Wenn ich den Browser aktualiere, wird anstatt des Buttons der Text "Bereits gespeichert" angezeigt. So wie es sein soll. Das Skript funktioniert aber nur so.
Wenn ich mehrmals auf speichern drücke, wird der Satz auch mehrfach gespeichert. WEin Unique-Feld nützt mir nicht, das der Zählerstand sich ändert.
Ich dachte, mit der selben if-Bedingung wie im Formular, aber das haut nicht hin.
Wo ist mein Fehler, kann mir mal jemand helfen ! ! !
PHP-Code:
echo "<form action='index.php?navi=" . $_GET['navi'] . "&menu=neuangebotgesamt' method='post'";
echo "<input type='submit' name='hauptmenu' value='Hauptmenü'></td>";
echo "<input type='submit' name='drucken' value='Drucken'></td>";
echo "<input type='hidden' name='is_saved' value='" . md5(time() + rand(0, 1000)) . "'>";
if(isset($_POST['is_saved']) && isset($_SESSION['is_saved']) &&
$_SESSION['is_saved'] == $_POST['is_saved'])
{
echo "Bereits gespeichert !</td>";
}
else
{
echo "<input type='submit' name='speichern' value='Speichern'></td>";
}
echo "</form>";
echo "</div>";
if (isset ($_POST['speichern']) && $_POST['speichern'] == 'Speichern' && (!isset($_SESSION['is_saved'])
|| $_SESSION['is_saved'] != $_POST['is_saved']))
{
Datenbank schreiben. Das lass ich mal raus, sonst wirds zu lang
$_SESSION['is_saved'] = $_POST['is_saved'];
}
Kommentar