mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 01.03.2002, 23:25   #1
TP-Specialist
 
Benutzerbild von Jürgen
 
Registriert seit: Feb 2002
Ort: Wien
Jürgen bringt sich richtig einJürgen bringt sich richtig ein
Question

Zurück-Button wenn Formular abgesendet wurde


Ich habe ein Problem mit dem Zurück-Button im Browser bei PHP-Seiten, die Parameter über ein Formular erhalten haben. Beim Klicken auf den Zurück-Button bekommt man im Browser die Meldung: Achtung, die Seite ist nicht mehr gültig... Danach muss man auf aktualisieren klicken, damit die Formulardaten noch einmal an die Datei übergeben werden. Bei meinem Skript werden jedoch Datensätze generiert, die dann noch einmal in die mysql-DB geschrieben werden.

Außerdem ist die Fummelei dem Surfer aus Usability-Sicht nicht zuzumuten.

Hat jemand von euch eine Lösung für das Problem, außer ein neues Javascript-Fenster ohne Buttonleiste?

Jürgen
Jürgen ist offline   Mit Zitat antworten


Alt 02.03.2002, 09:54   #2
jph
TP-Veteran
 
Benutzerbild von jph
 
Registriert seit: Apr 2001
Ort: Münster und gerade aus Brisbane
jph ist auf einem guten Weg
wäre es eine idee, wenn du selber einen zurück-button auf die seite machst und darauf einen link zurück zu der seite, damit die so generiert wie du möchtest?
dann sind die besucher dazu veranlagt, diesen zu benutzen. Poste mal den skript vielleicht gibt es auch eine bessere lösung weil die ist nur so 0-8-15 auf Glück
__________________
Internetprojekte & Webdesign
www.janheck.de
post@janheck.de
jph ist offline   Mit Zitat antworten
Alt 02.03.2002, 09:58   #3
TP-Supporter
 
Benutzerbild von Howie Munson II
 
Registriert seit: May 2001
Ort: Berlin
Howie Munson II macht alles soweit korrekt
Die einzige Lösung für dieses Problem, die ich bis jetzt gefunden habe besteht darin, vor dem Absenden ein Cookie zu schreiben und auf beim Laden bzw. Neuladen zu überprüfen, ob dieser Cookie geschrieben wurde, wenn ja, wird sie nicht mehr angezeigt und der Code zum Schreiben der DB nicht nocheinmal ausgeführt.

Oder anstatt des Cookies mit Sessions arbeiten und eine entpsrechende Statusvariable setzen.
Howie Munson II ist offline   Mit Zitat antworten
Alt 02.03.2002, 10:19   #4
TP-Insider
 
Benutzerbild von dares
 
Registriert seit: Feb 2001
dares macht alles soweit korrekt
warum löscht du nicht die formularvariablen und setzt im falle v. leeren Variablen eine weiterleitung a la Location ?
Dann werden zum einen deine Daten nicht mehr in die Datenbank geschrieben und zum anderen wird der user gleich auf eine andere Seite weitergeleitet.

mfg dares
__________________
ich bin krebs erregend - wer ist krebs?
dares ist offline   Mit Zitat antworten
Alt 02.03.2002, 13:28   #5
TP-Supporter
 
Benutzerbild von Howie Munson II
 
Registriert seit: May 2001
Ort: Berlin
Howie Munson II macht alles soweit korrekt
das funktioniert ?

wenn man aktualisiert, nehmen die Variablen doch wieder die alten Werte an (wenn keine Session Variablen)
Howie Munson II ist offline   Mit Zitat antworten
Alt 02.03.2002, 17:02   #6
TP-Supporter
 
Benutzerbild von SMURF
 
Registriert seit: Mar 2001
Ort: Coburg / Bayern
SMURF ist auf einem guten Weg
hi,
ich mach das immer folgendermaßen mit Sessions und PHP ...

In der Ausgangsseite (Formular) wird überprüft, ob die Variable "neuladen" in der session registriert ist. Ist das nicht der Fall, dann wird eine txt Datei mit Javascript includet, welche einen Reload der Seite bewirkt. Anschließend wird die Variable "neuladen" registriert, damit die Seite nicht ständig von Neuem geladen wird.

In der (oder den) auf das Formular folgenden Seiten wird zu Anfang erstmal die Variable "neuladen" aus der session entfernt.

Klickt der User nun den Back Button, so wird wie oben bereits beschrieben, wegen der fehlenden Variablen "neuladen" die Ausgangseite zunächst neugeladen.

Problem gelöst

Ist vielleicht nicht die geschickteste Lösung aber es funktioniert bei mir zumindest immer einwandfrei

Gruß
SMURF
SMURF ist offline   Mit Zitat antworten
Alt 02.03.2002, 22:27   #7
TP-Specialist
 
Benutzerbild von Jürgen
 
Registriert seit: Feb 2002
Ort: Wien
Jürgen bringt sich richtig einJürgen bringt sich richtig ein
Hallo und danke an euch alle für die Antworten,

@jph2000: Ich habe auf meinen Seite einen Zurück-Button, das Problem ist nur, dass die User von Webseiten fast immer den Zurück-Button des Browsers benutzen - eh klar, weil sie den gewohnt sind. Das Problem dabei ist die Meldung des Browsers - die bekomm ich nicht weg.

Mit der session-Variable "neuladen" kann ich das erneute Schreiben in die db verhindern - aber die Meldung des Browsers, dass an diese Seite Formulardaten übergeben wurden, die krieg ich damit nicht weg - richtig? Das irritiert aber die Benutzer gewaltig, dass sie zuerst auf "Aktualisieren" klicken müssen, bevor letzte Seite wieder geladen wird.

Wie kann man also dem Browser beibringen, in jedem Fall beim klicken auf den Zurück-Button die letzte Seite zu laden, und zwar ohne die lästige Meldung?

Grüße,
Jürgen
Jürgen ist offline   Mit Zitat antworten
Alt 02.03.2002, 22:44   #8
TP-Supporter
 
Benutzerbild von SMURF
 
Registriert seit: Mar 2001
Ort: Coburg / Bayern
SMURF ist auf einem guten Weg
hi,
also bei mir funktioniert das mit der session einwandfrei, ohne dass die Meldung der ungültigen Seite erscheint. Du darfst nicht vergessen das Reload Java Script zu includen!!!

sollte eigentlich keine Probleme geben

Gruß
SMURF
SMURF ist offline   Mit Zitat antworten
Alt 02.03.2002, 22:58   #9
TP-Specialist
 
Benutzerbild von Jürgen
 
Registriert seit: Feb 2002
Ort: Wien
Jürgen bringt sich richtig einJürgen bringt sich richtig ein
Hi, Smurf!

Also, wenn du das sagst, dann mach ich das glatt. Vielen Dank für den Tipp!

Eines würde ich aber daran gerne verstehen: woran erkennt der Browser, dass Formulardaten an die Seite übergeben wurden? Ich dachte, das wird ihm im HTTP-header mitgeteilt. Und diesen lädt er doch, bevor das Javascript die Zurück-Button wenn Formular abgesendet wurde kann. Warum kommt dann die Meldung nicht? Blickst du da durch?

Jürgen
Jürgen ist offline   Mit Zitat antworten
Alt 02.03.2002, 23:02   #10
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Hi !

Also ich lese ja brav mit, und mach mir auch so meine Gedanken. Das Problem hatte ich auch schon des öffteren, habe aber keine direkte Lösung gefunden, außer mit Session-Variablen. Die Meldung vom Browser hab ich auch nie wegbekommen.
ABER... es muß irgendwie gehen! Nehm einfach mal als Beispiel die Suche hier im Forum. Wenn man seine Daten abschickt, kommt man auf eine Zwischenseite, die die Daten erhält und die Suche tätigt und diese dann als Datensatz in die DB legt. Dann leitet die Seite weiter auf die Ergebnisseite.
Wenn man hier aber jetzt zurück klickt kommt die besagte Meldung NICHT!
Die Seite wurde doch auch durch einen Post erstellt, und dürfte somit doch auch nicht mehr aktuell sein... ???
...aber warum? Ich hab schonmal ein bischen im Quelltext gewühlt, aber auf die Schnelle nix gefunden... :\

Das mit dem reload per JavaScript könnte klappen... JavaScript greift doch eher auf den Cache zu und sendet daher die Daten nicht neu, oder? Aber wie bekommst du das Script zum Browser?? Bei mir erscheint auch immer die Meldung. Und bevor die Seite angefordert wird, kann ich doch kein JavaScript includen?!

SMURF könntest Du nicht mal ein kleines Beispiel basteln und das hier posten?? Damit wäre glaube ich vielen geholfen Und würde die Sache vielleicht sogar vereinfachen.

Gruß Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 03.03.2002, 13:51   #11
TP-Supporter
 
Benutzerbild von SMURF
 
Registriert seit: Mar 2001
Ort: Coburg / Bayern
SMURF ist auf einem guten Weg
hi!

also ihr habt Recht meine erste "Lösung" hat nicht funktioniert . Dass es bei mir trotzdem geklappt hat hatte andere Gründe.

Aber ich habe ein wenig überlegt und eine andere Lösung gefunden.
Das ganze funktioniert mit Hilfe einer Zwischenseite, die zwischen Formular und Ausgabeseite gesetzt wird und als Weiche fungiert.

1. Formularseite wird an sich selber abgesendet. Dabei wird eine "go-variable" übergeben.

2. Wenn die "go-variable" existiert registriert die Formularseite die Variablen (Input Felder) in einer Session. Zusätzlich wird noch eine "buffer-variable" registriert. Anschließend wird entweder per php header oder wenn der output schon verbraucht ist mit includetem JavaScript auf die Zwischenseite (z.B. buffer.php) umgeleitet.

3. Die Buffer Seite prüft ob die "buffer-variable" registriert ist, wenn ja wird auf die Ausgabeseite umgeleitet (innerhalb der Ausgabeseite muss nun die "buffer-variable" aus der Session gelöscht werden). Existiert die "buffer-variable" nicht, so wird auf die Formularseite umgeleitet.

fertig! *stolz*

Ist natürlich etwas umständlich aber es funktioniert!

Gruß
SMURF
SMURF ist offline   Mit Zitat antworten
Alt 03.03.2002, 14:34   #12
TP-Specialist
 
Benutzerbild von Jürgen
 
Registriert seit: Feb 2002
Ort: Wien
Jürgen bringt sich richtig einJürgen bringt sich richtig ein
Hi Smurf!

Das ist wirklich eine ausgeklügelte Sache. Ich werde das heute ausprobieren. Ich muss das zwar in einer abgewandelten Form verwenden, da ich in dem besagten Bereich mit includes arbeite und daher immer in derselben Datei unterwegs bin, aber ich glaube das tut nichts zur Sache.

Ich hoffe nur, dass der Browser nicht meckert, wenn die Seite, welche die Formulardaten erhalten hat statt mit dem Zurück-Button eben mit dem location-header angesprochen wird. Aber es wird sich weisen...

Danke für die Mühe. Ich melde mich nochmal, obs geklappt hat.

Grüße,
Jürgen
Jürgen ist offline   Mit Zitat antworten
Alt 05.03.2002, 01:03   #13
TP-Specialist
 
Benutzerbild von Jürgen
 
Registriert seit: Feb 2002
Ort: Wien
Jürgen bringt sich richtig einJürgen bringt sich richtig ein
Ich habe das jetzt ausprobiert und es funktioniert tatsächlich, sogar einfacher, als es Smurf ausgetüftelt hat:

Das Formular ruft direkt per POST die Datei buffer.php auf. Dort werden die Variablen in Sessionvariablen registriert und sofort per location-header auf die Ausgabeseite weitergeleitet, wo die Datenbankupdates bzw. inserts gemacht werden.

Da der Browser von der buffer.php nichts mitbekommt - er kriegt ja nur die Ausgabeseite geschickt - und im header der Ausgabeseite nicht angegeben ist, dass die Seite Formulardaten erhalten hat (die kommen ja von der Session), funktioniert auch der Zurück-Button ohne murren.

Trotzdem bin ich noch nicht glücklich, denn wenn während der Registrierung der Sessionvariablen ein Fehler auftritt, wird eine Meldung an den Browser geschickt -> damit bleibt das Werkel stehen, da die header ja schon geschickt wurden...

Ist wohl noch nicht der Weisheit letzter Schluß.

Vielen Dank, Jürgen
Jürgen ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Zurück-Button wenn Formular abgesendet wurde Zurück-Button wenn Formular abgesendet wurde
« Variable wird nicht gesetzt | ältere datensätze löschen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:56 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67