Reload-Button im Browser abfangen
Stephan
- browser
Gibt es eine Möglichkeit, im NS oder IE (möglichst ab Version 3.0) das Anklicken des Reload-Buttons abzufangen?
Ich möchte nämlich noch eine Art Session-ID an den Server zurückschicken, um den Surfer erneut identifizieren zu können.
Das Ganze wäre auch über ein Cookie lösbar, deren Akzeptanz im Web m. E. immer noch sehr gering ist und die ich deswegen nur äußerst ungern verwende.
Danke
Stephan
Gibt es eine Möglichkeit, im NS oder IE (möglichst ab Version 3.0) das Anklicken des Reload-Buttons abzufangen?
Lass doch einfach den Reload-Button verschwinden. Dies geht mit
function fenster(){
welt = window.open("index.htm", "welt", "width=790,height=520,screenX=1,screenY=1,status=1,resizeable=0"); }
</script>
Hierbie wird ein neues Fenster geöffnet, bei dem alle Navigationselemente fehlen. Allerdings funktioniert die rechte Maustaste weiterhin, so daß man so immer noch reloaden kann. Machs doch mit Cookies, so sehr werden sie nun auch nicht abgelehnt. Mich stören sie jedenfalls nicht :))
bye
Benedikt
P.S.: Tut mir leid, aber was besseres fählt mir nicht ein. Außerdem glaube ich nicht, daß es überhaupt möglich ist. Es sei denn du schreibts ein Update für den NC/MSIE ;)
Um das Problem verständlicher zu machen, muss ich wohl etwas weiter ausholen:
Ich möchte einen kleinen Online-Shop mit Warenkorbsystem implementieren.
Der Nutzer kriegt beim Ablegen der gewünschten Artikel in den Warenkorb eine Session-ID zugewiesen, die mit den bestellten Artikeln in einer Datenbank am Server abgelegt werden.
Wichtig: Das Ganze spielt sich noch vor der eigentlichen Bestellung ab, die Artikel sind zu diesem Zeitpunkt ja nur für die hoffentlich noch erfolgende Bestellung vorgemerkt.
Drückt er jetzt auf Reload, bekommt er eine neue Session-ID zugewiesen und hat wieder einen leeren Warenkorb.
Daher mein Problem:
Wie kann ich den Inhalt des Warenkorbes "reload-resistent" sichern ?
Und das am besten ohne Cookies !
Stephan
Daher mein Problem:
Wie kann ich den Inhalt des Warenkorbes "reload-resistent" sichern ?
Und das am besten ohne Cookies !
Dann nimm doch als Session-Ident die IP irgendwie verknueft mit dem Datum und uhrzeit ... da kannst du dann pruefen, ob der user vielleicht die letzten paar minuten schon eingeloggt war.
Viele Gruesse, Thomas Hieck
Daher mein Problem:
Wie kann ich den Inhalt des Warenkorbes "reload-resistent" sichern ?
Und das am besten ohne Cookies !
Ein (vielleicht nicht ganz so schöner) Ansatz wäre das Öffnen eines zweiten Fensters, in dem dann die JavaScripts für die Speicherung des Warenkorbes ablaufen müssten - gespeichert werden sie dort also von der Hauptseite aus, das neue Fenster könnte einen Hinweis enthalten, z.B. "Bitte nicht neu laden, sonst wird der Warenkorb gelöscht"...
Wäre jetzt ein möglicher Ansatz...
CIAO
H-Man
Noch eine Loesung waere natuerlich die daten im Fensternamen zu speichern.
Thomas Hieck
Noch eine Loesung waere natuerlich die daten im Fensternamen zu speichern.
Könntest Du das bitte etwas genauer erklären ?
Stephan
Noch eine Loesung waere natuerlich die daten im Fensternamen zu speichern.
Könntest Du das bitte etwas genauer erklären ?
Um das Problem verständlicher zu machen, muss ich wohl etwas weiter ausholen:
Ich möchte einen kleinen Online-Shop mit Warenkorbsystem implementieren.
Der Nutzer kriegt beim Ablegen der gewünschten Artikel in den Warenkorb eine Session-ID zugewiesen, die mit den bestellten Artikeln in einer Datenbank am Server abgelegt werden.
Hm..
also ich denke wer via Kred-Katrte über Internet bestellt
der kann denn auch mit Cookies leben.. wer schoon ne
Panik vor Cookies hat der würde eh erst recht nicht seine
Kred-Karten Nummer rausrücken...
Persönliche Meinung.. aber ich denke so könnte es sein.:))
gruss
Jens
Gibt es eine Möglichkeit, im NS oder IE (möglichst ab Version 3.0) das Anklicken des Reload-Buttons abzufangen?
Ich möchte nämlich noch eine Art Session-ID an den Server zurückschicken, um den Surfer erneut identifizieren zu können.
Hallo !
Ich verstehe nicht ganz, was das Versenden von Cookies mit dem Reload-Button zu tun hat...
Abfangen kann man die Buttons aber meines Wissens nicht - die einzige Möglichkeit ist dabei wahrscheinlich, sie dem Benutzer gar nicht erst zu bieten, also ein Fenster ohne Symbol- und Menüleiste zu öffnen...
Wenn das Deine Frage beantwortet, okay, ansonsten: kannst Du die Frage vielleicht deutlicher stellen ?
CIAO
H-Man
Hallo Stephan,
wie ich aus dem Thread entnehmen kann, geht es Dir um einen ONLINE-Shop.
Ich habe das ausschließlich mit CGI so gelöst:
Es gibt eine SUB mit folgendem Inhalt:
$browser=$ENV{'HTTP_USER_AGENT'};
$ip=$ENV{'REMOTE_ADDR'};
$fingerprint=$ip.$browser;
$expire=time+10000;
Die Artikelnummer des Produktes, der Fingerprint und die Expire-Zeit ergeben zusammen einen Datensatz in der Warenkorb-Tabelle.
Die SUB identifiziert den Benutzer eindeutig, da die ip-Adresse nur einmal vorkommen kann. Wenn sich der Benutzer jetzt aber z.B. 2 Waren in den Warenkorb legt und sich abmeldet ohne zu bestellen, dann könnte folgendes passieren:
Ein anderer User, logt sich beim Provider ein und bekommt dynamisch genau die IP zugewiesen, die der vorherige Benutzer hatte. Dieser neue Benutzer geht auf Deine Seite und benutzt auch noch zufällig den gleichen Browser. Dann bekommt er einen bereits gefüllten Warenkorb angezeigt....
Wenn zwischen dem ersten Besuch und dem zweiten Besuch mehr als 10000 Sekunden (die Zeit kannst Du selbst festlegen...) liegen, dann fange ich das ab mit der $expire-Variable, die im Warenkorb zusätzlich mit abgelegt ist. (Niemand hält ca. 3 Stunden einen Warenkorb offen, um dann doch noch zu bestellen)
Natürlich entsteht dadurch Datenmüll und zwar genau die nicht bestellten aber bereits abgelaufenen Daten. Dies ist aber kein großes Problem. Wenn man es automatisieren möchte, dann kann man ja bei jedem Aufruf der Warenkorbfunktion alles löschen, was bereits abgelaufen ist.... Bei meiner mySQL-Datenbanke tritt hier eine nicht merkbare Zeitverzögerung (<1 sek) ein. Alternative: Man löscht selbst regelmäßig per Hand oder Script, daß händisch aufgerufen wird....
Ich hoffe, geholfen zu haben!
Gruß
Christian Schnagl
christian@schnagl.de
PS: Ich halte den oben geschilderten Fall für sehr unwahrscheinlich, so daß nichts gegen den Einsatz dieser Methode spricht. Wenn es eine bessere Lösung gibt, dann würde ich Sie hier gerne erfahren !!!