Verhindern, das eine Seite mit F5 neugeladen wird
markus
- php
Hi,
wenn ich eine Seite aufrufe, und diese mit f5 aktualisiere bleibt die Getvar in der url ja erhalten... Wie kann ich nun entweder verhindern, dass man die seite mit f5 reloaded oder, dass die Get-Var nach ausführen der Datei gelöscht wird?
Gruß und danke im vorraus
Hi,
wenn ich eine Seite aufrufe, und diese mit f5 aktualisiere bleibt die Getvar in der url ja erhalten... Wie kann ich nun entweder verhindern, dass man die seite mit f5 reloaded
erstens kannst Du es gar nicht verhindern.
Zweitens nicht mit einer serverseitigen Technik.
Drittens auch nicht das Neuladen per Strg+R bzw. Apfel+R, Kontextmenü, Browsermenü, Plugins, Bookmarks, andere Clients oder allgemein gesagt: die unendlich vielen Möglichkeiten, eine URL anzufordern.
oder, dass die Get-Var nach ausführen der Datei gelöscht wird?
Was Du serverseitig machst, also ob Du beispielsweise irgendwie überprüfst, ob eine Aktion bereits ausgeführt worden war, bleibt Dir überlassen. Das wiederholte Neuladen ist Sache des Users.
Cheatah
Danke für die schnelle Antwort.
mal angenommen, ich würde überprüfen wollen, ob der vorgang schon ausgeführt wurde, was müsste ich denn da schreiben?
Gruß
Hi,
mal angenommen, ich würde überprüfen wollen, ob der vorgang schon ausgeführt wurde, was müsste ich denn da schreiben?
Du müsstest diejenigen Daten, die zur Identifizierung des Vorganges hinreichend sind, persistent speichern.
Cheatah
persistent speichern?
Erläuter mal wie du das meinst...
Hi,
persistent speichern?
Erläuter mal wie du das meinst...
Das war für mich auch ein Fremdwort
Dein Problem lässt sich lösen, wenn du bei jedem Seitenaufruf mit GET-Parametern (auch bei POST) einen zusätzlichen (einmaligen) Parameter einbaust und diesen dann serverseitig (z.B. in einer DB) abspeicherst. Wenn die Seite zum zweiten mal mit dem Parameter aufgerufen wird weißt du, dass der Aufruf auf "nicht gewünschte Weise" (also z.B. mit Reload oder History-Back) verursacht wurde.
Beispiel:
Eventuell reicht es auch aus, wenn du Überprüfst, ob die ohnehin schon übertragenen Parameter (im Beispiel a und b)ausreichen, um zu entscheiden, ob der Aufruf gültig war oder nicht. Damit könntest du dir den zusätzlichen Parameter sparen.
Dann würde das Beispiel so aussehen:
Hoffe du verstehst einigermaßen, wie ich es gemeint habe.
Ich weiß nicht, ob das die beste Lösung für dein Problem ist, aber es ist zumindest mal eine Lösungsmöglichkeit.
Vielleicht kann sich ja noch jemand dazu äußern, wie solche Probleme in der Praxis gelöst werden, da ich sowas noch nie wirklich praktisch umgesetzt habe.
mfG,
steckl
Danke für die Antwort :)
das war die lösung ;)
Gruß
Hi,
Vielleicht kann sich ja noch jemand dazu äußern, wie solche Probleme in der Praxis gelöst werden, da ich sowas noch nie wirklich praktisch umgesetzt habe.
Mit einer ID, die gespeichert und vor der Verarbeitung geprüft wird. ;)
Ich persönlich hänge ggf. an einen beliebigen Parameternamen eine solche ID (sende sie also nicht als eigenständigen Parameter). Das, sowie das Auswerten der ID geschieht dann im Wesentlichen automatisch, so daß ich mich gar nicht erst weiter darum kümmern muß ...
Gruß, Cybaer
Hallo,
mal angenommen, ich würde überprüfen wollen, ob der vorgang schon ausgeführt wurde, was müsste ich denn da schreiben?
Eine Möglichkeit:
Verteile einen Schlüssel also z.B.
deineSite.de/index.php?key=saekjf
diesen Schlüssel speicherst Du in einer Datenbank und löschst ihn sobald die Seite einmal aufgerufen wurde, wahrscheinlich nicht die schönste Variante, aber geht...
Mit Der IP zu identifiziern geht auch. Finde ich aber nicht schön!
M.f.G. EneR