feststellen ob ein browser noch auf den server zugreift
Manuel Burghammer
- perl
tagchen,
ich bin grad dabei ein script zu schreiben bei dem man sich einloggt und dann eine session-id bekommt. damit werden dynaische links erzeugt ohne die man keine seiten anzeigen kann (aehnliches system wie bei chats wie cassiopeia u.ae.)
wie kann ich jetzt feststellen ob ein browser immer noch auf der seite ist oder ob der browser geschlossen ist ohne das der user sich ausgeloggt hat ??.....
ich koennte das mit nem cronjob machen der alle minute die IP adressen abfragt hab aber keine ahnung WIE ich WAS abfragen muss. ist das so ne art ping ?
danke schonmal
SoLong M.
PS: ich schaem mich ja schon weil ich so ne menge fragen hier poste :o(
und dann eine session-id bekommt.
<img src="/images/02.gif" alt="">
PS: ich schaem mich ja schon weil ich so ne menge fragen hier poste :o(
http://www.teamone.de/cgi-local/sfasuch.pl?suchausdruck=%2Bsession+%2Bid&feld=alle&hits=alle
tagchen,
ich weiss ja nicht ob du alle beitraege gelesen hast....
ich hab alle zumindest ueberflogen und es war KEINER dabei der mein problem loesen koennte.....
sorry, aber solche antworten helfen keinem.....und mein problem hab ich immer noch :o((
Solong M.
Hi,
ich hab alle zumindest ueberflogen und es war KEINER dabei der mein problem loesen koennte.....
Das wundert mich keineswegs.
und mein problem hab ich immer noch :o((
Genau wie alle anderen, die versuchen, ein zustandsloses Protokoll wie HTTP für die Verwaltung eines stehenden Dialogs zu verwenden. Dafür ist es halt einfach nicht gedacht.
Es gibt nicht für alles eine Lösung - aber zu deinem konkreten Problem unheimlich viele "Halblösungen", und die eben stehen auch in großer Zahl im Archiv, wie Du gesehen hast.
mfG - Michael
Hi Manuel,
Vergiss das mit der IP (es geht nicht weil: mehrere User können eine IP haben, ein User kann mehrere
IP's haben (wg. Proxy/Gateway))
Prinzipiell geht das GAR NICHT. Sobald die Seite übertragen ist, wird die Verbindung beendet,
wie lange der User noch auf das offene Browserfenster starrt kannste nicht feststellen. (Bei 3..18
offenen Fenstern beende ich z.b. schon mal die Netzwerkverbindung um erstmal alles zu lesen,
dannach gehts weiter.)
Aber natürlich gibt es einen Trick um es fast hinzukriegen. Mach einen (kleinen unsichtbaren) Frame
mit "nocache". (gibt ingesammt 3 Zeilen die im Header stehen müssen->Archiv -> "meta pragma nocache"
mit php/Perl kannst auch noch im Header anti-cache Massnahmen treffen) . Dieser Frame kriegt
dann ein auto reload von (z.b.) 30 sec. (meta refresh). (Auf sich selber, mit seiner Session -ID)
Wann der letzte Reload war merkste dir aufm Server (der ge-refresh-te Frame kann ja z.b. ein Script
sein, das einen Datenbankeintrag macht), jede Session ID die seit mehr als (z.b.) 1min nicht refreshed
wurde ist dann tot.
Das ist relativ viel Aufwand, mässig fehleranfällig (cached nicht doch wer, schlechte Internet/Serveranbindung)
und kann nervern. (der dauernder Reload frisst Bandbreite und hält evtl. eine on demand Verbindung offen.)
Üblicherweise wird deshalb einfach die Session ID nach ner Stunde gekippt, mit der bitte sich wegen Timeout
neu anzumelden.
Gruss
Carsten