Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestrowane zakończenie sesji
Forum PHP.pl > Forum > PHP
inteltweaker
Do realizacji pewnego pomysłu potrzebna jest mi możliwość rejestracji czasu rozpoczęcia i zakończenia sesji użytkownika. Użytkownicy mają być identyfikowani tylko na podst. cookies (bez logowania/wylogowania). Oczywiście nie ma problemu, jeśli idzie o zapis czasu rozpoczęcia sesji, powstaje tylko pytanie czy jest sposób na zapis czasu, kiedy użytkownik opuścił stronę (zamknął okno przeglądarki, rozłączył się z net'em lub wpisał nowy adres)?
adwol
Cytat
czy jest sposób na zapis czasu, kiedy użytkownik opuścił stronę (zamknął okno przeglądarki, rozłączył się z net'em lub wpisał nowy adres)?

Nie. HTTP sam z siebie jest protokołem bezstanowym. Przeglądarka wysyła zapytanie do serwera, dostaje odpowiedź i się rozłącza (ew. w HTTP 1.1 może wysłać kilka requestów ale to nie zmienia postaci rzeczy). Serwer nie wie nic o tym co się dzieje po stronie klienta po zakończeniu transmisji. Nie wiadomo, czy za chwile klient znów coś wyśle, czy też zamknie przeglądarke.

A powiedz, do czego Ci to potrzebne, bo może da się rozwiązać w inny sposób.
inteltweaker
To jest potrzebne do uwiarygodnienia statystyk - oprócz tego, że użytkownik wszedł na stronkę warto wiedzieć, czy zamknął ją zaraz po wczytaniu, oglądał ja np. minutę itd.
adwol
Cytat
To jest potrzebne do uwiarygodnienia statystyk - oprócz tego, że użytkownik wszedł na stronkę warto wiedzieć, czy zamknął ją zaraz po wczytaniu, oglądał ja np. minutę itd.

To na moj gust, bez apletu Javy się nie obejdzie.
spenalzo
Ewentualnie można w pętli sprawdzać przy pomocy [manual:79e5f1ade4]connection_aborted[/manual:79e5f1ade4] czy nie zostało rozłączone, ale nie jest to wydajne i przy statystyka ch odpada.
kwiateek
Poodbny problem był już na forum kiedyś poruszzany i jednyhm z rozwiązań jest umieszczenie kodu JavaScript, który przy zamknięciu przeglądarki będzie uruchamiał małe okienko, w którym będzie przetwarzany skrypt odpowiedzialny za zapisanie czasu końca sesji.

Pozdrawiam.
Seth
http://forum.php.pl/viewtopic.php?p=31558#31558

--------

php Poczatkujacy >> php
id4
Można też tak zrobić, by zapisywać każdy ruch użytkownika strony (czytać z sesji czas ostatniej operacji). Po upłynięciu np. 30 minut bezczynności w statystykach odejmować od czasu bieżącego te 30 min i wychodzi czas ostatniego kliku usera strony. Jest tutaj taki haczyk, że jak user czyta podstronę np. 10 min po czym zamyka przeglądarkę, to w statystykach pokaże się jego czas rozłączenia z serwisem w momencie kliknięcia na tą ostatnio oglądaną podstronę.
inteltweaker
Myślę, że większość ograniczeń nie pozwalających na łatwą realizację tego zadania polega na tym, że php to "preprocesor...", który ma jedynie przygotować stronki do wyświetlenia. Ideałem byłoby, gdyby JavaScript zamiast otwierać okno (mało eleganckie) zapisywał od razu dane w bazie np. MySQL : laugh.gif Ale niestety to byłoby za łatwe...

Thnx for @ll
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.