• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

"Daten erneut senden" abstellen!

kulka1

Mitglied
Hey Leute,

ich habe ein Formular erstellt,
wo man ein Team und sein Lieblingsspieler eingeben kann.
Klickt man auf Abschicken wird das in eine Tabelle eingetragen.
Aber wenn man F5, also aktualisiert kommt diese Meldung:

meldung.jpg


Das Problem ist dann, das das eingegebene dann nochmal in der Tabelle erscheint, und wenn man noch mal aktualisiert wird es wieder hinzugefügt und und und

Wenn man also 5 ma aktualisiert hat man sein Eingegebenes 5 mal in der Tabelle stehen :shock:.

Gibt es einen Code der das abstellt oder sowas in der Art?
Das das nicht immer wieder neu gepostet wird?

mfg kulka
 
Werbung:
Ich glaube nicht. Das ist ganz normal weil dei Daten aeinfach erneut gesendet werden. Man darf die Seite einfach nicht aktualisieren.
 
Das Fenster kannst du nicht abstellen, du kannst aber nach dem Absenden umleiten, so das der Browser die Seite wieder per GET anfordert.
 
Werbung:
Warum willst du sie denn aktualisieren?
Wenn du wissen willst ob es neue einträge gibt, dann sollte die seite auf die man nach einem eintrag kommt eben eine andere datei sein, wo nichts gesendet werden muss.
also in form von formulareingabe.php und wenn mans gemacht hat man auf tabellenanzeige.php kommt, wo nur die Tabelle ist.
Eine andere Möglichkeit gibt es da nicht.

MfG
 
ich gebe die sachen in formular_eingabe.php ein, aktualisiere ich da kommt die meldung
aber wenn ich nachdem ich auf Eintragen klicke und er dann autom. auf formular.php springt, also wo die tabelle ist, und dann trotzdem aktualisiere kommt trotzdem das fenster, und er gibt es erneut ein -.-
 
Jedes Webseite, die Daten per post entgegennimmt, zeigt dieses Verhalten. Da die Nachfrage so gewollt ist, kannst Du sie auch nicht abstellen. Lösen kannst Du das so, dass Du in dem Script, dass die $_POST-Daten entgegennimmt, nach der Verarbeitung (in Deinem Fall wohl schreiben in eine MySQL-Tabelle) per header()-Funktion zu einer anderen Seite wechselst.

Gruß thuemmy
 
Werbung:
mhm ok, ich probier es mal aus ;)
und wenn es nicht gehen sollte, dann mach ich einfach ne extra seite, in der dann steht, dass man was eingetragen hat ;)^^

Danke, mit dem Header war eine gute idee, wieso bin ich da nicht selbst draufgekommen? :-o
 
Zuletzt bearbeitet von einem Moderator:
hm koennnte man nicht einfach das $_POST leeeren und damit verhindern, dass ueberhaupt irgendwelche daten zum erneuten senden da sind?
(natuerlich erst, wenn man die POST daten verarbeitet hat)
 
Werbung:
Ich glaube eher nicht, dass das funktioniert, da das $_POST-Array trotzdem gesendet wird, auch wenn die Variablen dann leer sind. Aber wie in meinem vorherigen Beitrag geschrieben, lässt sich das erneute senden ja verhindern, wenn man von dem Verarbeitungsscript mit der header()-Funktion weiterleitet.

Meine Formulare mache ich grundsätzlich nach folgeendem Aufbau (Affenformular):
Code:
[B]PHP-Anfang[/B]
Wenn Formular per submit-Button gesendet
   Prüfen Eingabe
   Wenn Eingabe korrekt
      Verarbeitung Daten
      Weiterleitung mit 
      header("location:http://www.deine_domain.tld/danke.php");   
   Sonst
      Aufbereitung Fehler o.ä.
[B]PHP-Ende[/B]
HTML-Anfang
Doctype
<html>
   <head>
      blabla
   </head>
   <body>
      blabla
[B]PHP-Anfang[/B]
Wenn Fehler (aus vorheriger Überprüfung/Verarbeitung)
   Ausgabe Fehlermedlung
[B]PHP-Ende[/B]
      <form>
      </form>
   </body>
<html>
HTML-Ende
Gruß thuemmy
 
die variante mit dem header ist eine gute lösung um "dummen" besuchern keine vorlagen zum spammen zu bieten. es ist aber kein schutz.
ich erlaube nurnoch einträge, wenn eine gültige session vorhanden ist.

theroretisch kann man es so beschreiben:

seite A(formular) -> seite B(speichern)

bei A gib ein cookie, welches bei B geprüft wird. wenn keins da ist dann wird nicht gespeichert. wenn eins vorhanden ist, wird es gelöscht und der inhalt aus dem formular gespeichert.

man kann diese technik nach belieben erweitern und die spamsperre verfeinern. ich bin damit aber auch shon auf die nase gefallen, da mein webspace anbieter mysteriöse session einstellungen hat die mir die variablen durcheinander bringen -.-. also immer auch auf dem server testen.

anonsten bleibt noch die ip sperre, capchas usw.

die meldung vom browser kann man nicht unterdrücken, wär auch sinnlos.
 
Werbung:
Zurück
Oben