auf eine variable hinweisen

Alles, was PHP betrifft, kann hier besprochen werden.

Postby KingCrunch » 16. February 2006 15:22

Öh ... Wovon redest du jetzt?
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Makconner » 16. February 2006 15:24

Aber das ist doch auf eine Art völlig unstimmig… der Server MUSS auf irgend eine Art erkennen das der User nicht mehr in der Session ist. Sonst würde er ja auch die Session_variablen nicht verwerfen wenn der Bruwser geschlossen ist. Was zur Folge hätte das Massig Session_variablen mit diversestem Inhalt den Arbeitsspeicher des Servers zumüllen würen…
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby M3g4Star » 16. February 2006 15:29

Jo .. solange die Session aktiv ist .. ;)

:lol:
User avatar
M3g4Star
 
Posts: 145
Joined: 25. January 2006 07:46
Location: München

Postby Makconner » 16. February 2006 15:31

ahja und wie erkennt der der Server? wir schließen doch das Fenster.. und der Server bekommt davon nix mit? wir senden doch kein Signal... oder der Strom fällt aus... dann senden wir erst recht kein Signal.... also... was macht der Server?
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby KingCrunch » 16. February 2006 15:34

Joa, stimmt ja im Großen und Ganzen auch. Der Server verwirft keine Variablen, wenn der Browser geschlossen wird. Das würde auch vorraussetzen, dass der Browser beim schließen oder alleine beim "Seite wechseln" irgendetwas an die Ursprungsseite sendet. Was er nicht tut ;) Der Grund, warum er nicht überschwemmt wird von veralteten Sessions, liegt an einer kleinen Einstellungen in der php.ini
Code: Select all
; Document expires after n minutes.
session.cache_expire = 180

Müsste es zumindest sein :?
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Knight1 » 16. February 2006 15:37

KingCrunch wrote:Mir ist
b) keine andere Möglichkeit für das automatische ausloggen bekannt
bekannt... ;)

Das Problem (an b)) ist, dass man, wenn der Nutzer den Browser einfach so schließt, von der Serverseite aus nicht feststellbar ist, was nun eigentlich Sache is. Man könnte alle User quasi bei jeden Durchlauf einmal kurz pingen, aber in Zeiten von flatrate wird das unnutzbar.


Man könnte beim schliesen des Browserfenster über den Javascript-Befehl onUnload() eine Datei laden lassen welche dann den Logout-Vorgang enthält bzw. dem Server sagt dass der User die Seite verlassen hat und dann in dieser Seite gleich den Javascript-Befehl window.close() einbauen welcher das sich öffnende Fenster sofort wieder schliest.

Zu der maximalen Anzahl/Größe an/von Session-Variablen:
Mir ist auch keine Begrenzung bekannt. Theoretisch dürfte eine Session so groß werden wie es Festplattenspeicher bzw. Hauptspeicher (RAM) gibt.


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby KingCrunch » 16. February 2006 15:39

Man könnte beim schliesen des Browserfenster über den Javascript-Befehl onUnload eine Datei laden lassen welche dann den Logout-Vorgang enthält bzw. dem Server sagt dass der User die Seite verlassen hat und dann in dieser Seite gleich den Javascript-Befehl window.close() einbauen welcher das sich öffnende Fenster sofort wieder schliest.

Wäre denkbar, aber nur damit kommt man auch nich aus, denn schließlich hat nicht jeder JavaScript an... Aber die Idee merk ich mir trotzdem :)

@Session: Wie gesagt funktionieren 20000 Einträge in der Session noch sehr gut :) Dürfte denkbar reichen ;)
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby M3g4Star » 16. February 2006 15:43

Am besten isses doch wirklich mit dem timestamp zu arbeiten ... oder ????? als omeiner Meinung nach müsste das reichen.

nach dem Motto : wenn eine halbe Std. kein Signal gekommen ist hau die Session raus und gut.

:roll:
User avatar
M3g4Star
 
Posts: 145
Joined: 25. January 2006 07:46
Location: München

Postby KingCrunch » 16. February 2006 15:44

Die Session wird sowieso schon wesentlich früher von selbst rausgehauen. Und zusätlich müsstest du die Session-id sichern, was ich wiederum als Sicherheitsrisiko sehe, aber is auch wieder Ansichstsache ;)

Es ging ja um die Online-Liste, ide völlig unabhängig (zunächst einmal) von sämtlichen Session arbeitet.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Knight1 » 16. February 2006 15:58

KingCrunch wrote:Die Session wird sowieso schon wesentlich früher von selbst rausgehauen.


Stimmt. Standard sind glaube ich 180 Sekunden nach dem letzten Zugriff (siehe ein paar Beiträge weiter vorne/oben).

KingCrunch wrote:Und zusätlich müsstest du die Session-id sichern, ...


Per Standard-php.ini wird die Session-Id sowie so per Cookie gespeichert, blos geht dieses Cookie beim schliesen des Browser glaube ich verloren.
Ich gehe immer hin und schreibe die Session-ID in ein extra Cookie so habe ich wenigesten die Kontrolle. Zu not könnte man auch noch hingehen und das Cookie an SSL binden. So würde es dann nur übertragen wenn eine SSL-Verbindung (zu erkennen an dem HTTPS und dem Schloss in der Statuszeile des IE) besteht und dann auch noch verschlüsselt wie es sich für ein solche Verbindung gehört.


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64

Postby KingCrunch » 16. February 2006 16:01

Per Standard-php.ini wird die Session-Id sowie so per Cookie gespeichert, blos geht dieses Cookie beim schliesen des Browser glaube ich verloren.

Jep, das is ok, wenn der Client auch auf "seine" Daten zurückgreifen kann. Wenn du sie aber Serverseitig speicherst ... kann hässliche Flecken hinterlassen ;)

Ich gehe immer hin und schreibe die Session-ID in ein extra Cookie so habe ich wenigesten die Kontrolle.

Öh ... Wozu?

SSL is sowieso immer gut, wenns um Sicherheits geht. Denkbar wäre auch die Session-id direkt an eine IP zu binden. Nachtteilig daran wäre nur, dass bei einer Neueinwahl man sich kurzfristig neu anmelden muss, aber das find ich tragbar.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby KingCrunch » 17. February 2006 16:26

Mir ging grad noch was durch den Kopf: AJAX

Wennde als Javascript regelmässig (so alle 2min) ein Aufruf an einen Teil deiner website schicken lässt, dann fällt dem System irgendwann auf, dass kein Aufruf mehr kommt und er weiß, dass der Nutzer nicht mehr da ist. Setzt aber wiederum Javascript voraus
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Previous

Return to PHP

Who is online

Users browsing this forum: No registered users and 17 guests