POST-Daten werden erneut gesendet
Frank_
- php
0 Sven Rautenberg0 Texter mit x0 Frank_0 Texter mit x0 Frank_
Hi @All,
folgendes Problem ist bei mir aufgetreten:
Ich habe ein Login-System geschrieben, das auch soweit funktioniert.
Wenn ich direkt nach dem Login die Abmeldefunktion aufrufe, wird der Benutzer auch ohne Probleme abgemeldet.
Gehe ich allerdings über den Browser (ich benutzer Mozilla Firefox) 2 bzw. x Seiten zurück, kommt die Meldung "Post Daten werden erneut gesendet". Bestätige ich diese Meldung, bin ich wieder in meinem System angemeldet.
Das Problem ist das Mozilla sich den Benutzer und Passwort speichert und ihn erneut an das Loginsystem sendet.
Meine Frage ist, wie kann ich das umgehen?
Das habe ich schon versucht, ohne Erfolg:
<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
Ist dies vielleicht eine Einstellung vom Apache?
Viele Grüße und besten Dank
Frank
Moin!
Gehe ich allerdings über den Browser (ich benutzer Mozilla Firefox) 2 bzw. x Seiten zurück, kommt die Meldung "Post Daten werden erneut gesendet". Bestätige ich diese Meldung, bin ich wieder in meinem System angemeldet.
Das Problem ist das Mozilla sich den Benutzer und Passwort speichert und ihn erneut an das Loginsystem sendet.
Mozilla speichert alle Requests in der History - auch POST-Requests inkl. aller Daten.
Das wirst du nur los, indem das Browserfenster bzw. der Tab geschlossen wird.
Alternativ kannst du dir in der Session natürlich auch merken, dass ein Logout gewollt war, und aufgrund dieser Info den nochmaligen Login verhindern. Evtl. produzierst du für jedes Login auch einfach einen individuellen Code, der wieder mitgesendet wird, anhand dessen du erkennen kannst, dass das Login-Formular schon früher mal verwendet wurde.
Das ist aber insgesamt verhältnismäßig viel Aufwand für etwas, was sich durch Schließen des Tabs, Fensters oder Browsers recht einfach umgehen ließe. Sofern du nicht Fort Knox programmierst...
- Sven Rautenberg
Hi, das sind zwei Möglichkeiten, die auch funktionieren. vielen dank.
Eleganter würde ich es finden wenn firefox sich die Post Daten nicht merkt.
Möchte das gerne so haben wie beim login von gmx, da werden auch post - daten gesendet, die sich firefox aber nicht merkt.
weiss jemand wie die das machen?
Viele Grüße und herzlichen Dank
Frank
Mahlzeit,
Eleganter würde ich es finden wenn firefox sich die Post Daten nicht merkt.
Firefox ist OpenSource - kannst Deinen Browser also selbst entsprechend anpassen ... ;-)
Möchte das gerne so haben wie beim login von gmx, da werden auch post - daten gesendet, die sich firefox aber nicht merkt.
weiss jemand wie die das machen?
https?
MfG,
EKKi
Moin und Danke EKKi,
muss doch noch ne andere Möglichkeit wie https geben, hab mehrere Seiten gefunden die benutzen kein https, und trotzdem werden die formular daten nicht gemerkt, wie machen die das?
Viele Grüße und Dank
Frank
Meine Frage ist, wie kann ich das umgehen?
Was absolut zuverlässiges gibt es nicht aber
session_cache_limiter('private_no_expire');
funktioniert in vielen Fällen.
man beachte die Hinweise im Manual
Guten Morgen und Danke Texter mit x,
das funktioniert soweit, dass die Meldung nicht mehr kommt. Allerdings gibts jetzt ein weiteres Problem: Jetzt ist die Seite im Cache und wird vom Browser nicht erneut geladen.
D.h: wenn ich mich abgemeldet habe und dann auf zurück klicke, steht mein benutzerbereich immer noch da, ich kann zwar nichts klicken, sonst kommt die login maske, aber schön wäre es dennoch wenn das auch komplett verschwinden würde, d.h. der browser die seite erneut laden würde.
Viele Grüße und Dank
Frank
das funktioniert soweit, dass die Meldung nicht mehr kommt. Allerdings gibts jetzt ein weiteres Problem: Jetzt ist die Seite im Cache und wird vom Browser nicht erneut geladen.
Das war das Ziel der Sache, die Seite wird nicht neu geladen, damit die Anmeldung nicht erneut erfolgt. Wenn Du das nicht willst, dann kannst Du es nicht so machen.
Da muss es doch noch eine andere Möglichkeit geben?
Es gibt Seiten da funktioniert beides.
Viele Grüße und Dank
Frank
Da muss es doch noch eine andere Möglichkeit geben?
Es gibt Seiten da funktioniert beides.
Zeig mal her, welche Du meinst.
Da muss es doch noch eine andere Möglichkeit geben?
Es gibt Seiten da funktioniert beides.
Zeig mal her, welche Du meinst.
Ach so, Du hattest gmx angeführt. Wenn ich mich dort an- und abmelde und im Browser zurück-klicke, will er die Daten neu senden.
Den Befehl session_cache_limiter('private_no_expire'); brauchst Du aber auch nicht bei jedem Seitenaufruf auszuführen, es reicht doch dann, wenn Du ein Post-Formular gesendet hast.