47856
Goto Top

mehrfache SQL Eintraege nach F5 Aktualisierung

Folgendes Problem:

Speichert man in SQL-Datenbank über HTMl-Formular irgendwelche Einträge funktioniert erstmal alles ohne Probleme, aber wenn man dann die Taste F5 (Aktualisieren) drückt, speichert er den selben Eintrag nochmal ohne das im Eingabefeld irgendein Zeichen steht.

Wir haben versucht diese $_POST Variable mit unset() zu löschen, aber er speichert trotzdem den letzten eingegebenen Text ab.

Habt ihr irgendwelche Ideen???

Schon mal im Vorraus, Danke. face-smile

MfG.

Content-ID: 89197

Url: https://administrator.de/contentid/89197

Ausgedruckt am: 16.11.2024 um 13:11 Uhr

Arano
Arano 05.06.2008 um 11:55:35 Uhr
Goto Top
Hallo Webluna.

Diese Frage wurde vor nicht allzu langer Zeit in einem anderem Forum, in dem ich auch unterwegs bin, gestellt.
Eine der Lösungen (die die mir am besten gefällt) ist der HTTP-Statuscode "205 Reset Content" mit einer Headerweiterleitung.

Ich verwende es zwar selber noch nicht, aber ich hatte mir dazu ein Testskript geschrieben das super funktioniert:
<?php
  if(isset($_POST['name'])){  
     
     $db=fopen('./db.txt','a+');  
     fwrite($db,$_POST['name']."\r\n",strlen($_POST['name']."\r\n"));  
     fclose($db);
     
     header('HTTP/1.1 205 Reset Content');  
     header('Location: ./index.php');  
     }
?>
<html>
  <head>
    <title>reload - header - reset content</title>
  </head>
  <body>
  
    <form action="./" method="POST">  
      <input type="text" name="name" value="<?php if(isset($_POST['name'])) echo $_POST['name'] ?>"><br>  
      <input type="submit" value="Abschicken">  
    </form>
    
    <hr>
    Testskript zu <a href="http://www.cybton.com/view_thread,Formular%20Reload%20verhindern,26986,2.html#p282730">http://www.cybton.com/view_thread,Formular%20Reload%20verhindern,26986,2.html#p282730</a>  
    
  </body>
</html>
http://www.cybton.com/view_thread,Formular+Reload+verhindern,26986,1.ht ...

Gruß Arano
47856
47856 05.06.2008 um 11:57:50 Uhr
Goto Top
Das werden wir uns gleich mal anschauen und ausprobieren. Danke. face-smile
47856
47856 09.06.2008 um 08:04:40 Uhr
Goto Top
Guten Morgen face-smile

Ich habe es mir mal angeschaut, nur leider verstehe ich nicht so viel von PHP und mein Partner ist im Urlaub... face-sad

header('HTTP/1.1 205 Reset Content');

Die Zeilen habe ich bei mir eingefügt, jedoch hat es nichts bewirkt... ???

MfG.
dtzzzzzz
dtzzzzzz 22.09.2008 um 16:24:27 Uhr
Goto Top
Hi,

1. Lösung:

Du fragst die Datenbank mit den Werten ab, die du speichern willst, ob diese indentischen Werte bereits dort existieren und wenn nein, dann speicherst du sie ab, sonst eben nicht. Dadurch kannst du das einfach vermeiden, stellt natürlich aber zusätzliche Abfrage an die DB dar.

2. Lösung:

Du machst das mit AJAX, da dort die Eingaben dann nur in der JavaScript onClick-Anweisung an die PHP übergeben werden und gespeichert werden und nicht mehr bei F5-Drücken.
Arano
Arano 22.09.2008 um 23:37:58 Uhr
Goto Top
Nabend...

zu 2.:
An sich eine mögliche Lösung, aber:
Dies setzt voraus das Javascript aktiviert ist, ist das nicht der Fall, __muss__ es eine alternative geben und diese läuft über den normalen Submit-Weg - schon stehen wir wieder vor der selben frage ;)

~Arano
dtzzzzzz
dtzzzzzz 23.09.2008 um 00:07:14 Uhr
Goto Top
Nun, man kann nicht alles haben. AJAX wird momentan sehr viel genutzt. Ansonsten sieh Lösung 1.