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-Key: 89197

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

Printed on: April 16, 2024 at 19:04 o'clock

Member: Arano
Arano Jun 05, 2008 at 09:55:35 (UTC)
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
Mitglied: 47856
47856 Jun 05, 2008 at 09:57:50 (UTC)
Goto Top
Das werden wir uns gleich mal anschauen und ausprobieren. Danke. face-smile
Mitglied: 47856
47856 Jun 09, 2008 at 06:04:40 (UTC)
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.
Member: dtzzzzzz
dtzzzzzz Sep 22, 2008 at 14:24:27 (UTC)
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.
Member: Arano
Arano Sep 22, 2008 at 21:37:58 (UTC)
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
Member: dtzzzzzz
dtzzzzzz Sep 22, 2008 at 22:07:14 (UTC)
Goto Top
Nun, man kann nicht alles haben. AJAX wird momentan sehr viel genutzt. Ansonsten sieh Lösung 1.