![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
W jaki najłatwiejszy sposób zrealizować zapis czasu przebywania na stronie przez usera? Myślałem o ciasteczkach i skrypcie JS, który przy opuszczaniu strony zapisywałby czas przebywania do ciasteczka. Przy wejściu na kolejną podstronę PHP odczytywałoby ciasteczko z dokładnym czasem. Ale nie wiem czy tak można zrobić, a poza tym nie znam się akurat na JS. Byłby ktoś chętny pomóc/nakierować? Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 25 Dołączył: 29.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
ja posiadam zliczanie ile osob jest na stronie w pliku textowym on zapisuje ip oraz obok tego jest od kiedy jest dano ip to mozesz sobie przerobic na sprawdzanie od danego uzytkownika ile jest na stronie
-------------------- Pomogłem daj pomógł
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 322 Pomógł: 15 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak, to się sprawdza kiedy chcesz widzieć ilu jest userów, ale problem w tym że kolega chce widzieć jak długo dany user jest na stronie.
Ja osobiście jestem przeciwnikiem korzystania z obsługi plików. Korzystało się z nich w czasach kiedy hostingi z bazą były drogie, teraz są inne czasy i takie rzeczy są w standardzie. Problemem są również dzisiejsze przeglądarki, które zapamiętują bieżącą sesję, nawet jeżeli zamknęło się zakładkę ze stroną. Nie jest problemem policzyć od kiedy jest bo można to zrobić automatem w chwili logowania. Jednak nie każdy user się wylogowuje, i tutaj jest kot pogrzebany ;p Sam jestem ciekaw jak można rozwiązać Twój problem ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 25 Dołączył: 29.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
a jak bys to sprowadzil do sesji ze po zalogowaniu zabpisuje np.
$_SESSION[czas] = time(); i potem odczytujesz to moim zdaniem bylo by lepsze i to by sie sprawdzilo -------------------- Pomogłem daj pomógł
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 322 Pomógł: 15 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak, ale weź pod uwagę, że sesja funkcjonuje nawet po wyłączeniu karty ze stroną. bynajmniej w Operze, Chromie, FF itd.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 25 Dołączył: 29.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
w inny sposob raczej nie zobaczysz moze przy uzyciu js
-------------------- Pomogłem daj pomógł
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 322 Pomógł: 15 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Na upartego, jeżeli jest to takie ważne, można wysyłać confirm do user czy nadal korzysta ze strony. Ale to już była by łopata
![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Doszedłem do rozwiązania i proszę bardzo dla potomnych:
Korzystać z JS, a mianowicie ja skorzystałem z jQuery (bo i tak z niego korzystam) i funkcji unload() i ajax(). Przy wejściu na stronę do bazy zapisywany jest czas rozpoczęcia sesji, a po zamknięciu zakładki/strony/etc skrypt JS przesyła dane do drugiego skryptu, który dopisuje czas do bazy jako koniec sesji. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 322 Pomógł: 15 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
A czy mógłbyś podzielić się kodem; Tak się składa, że jestem tym potomnym
![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
W data podajesz zmienne dzięki którym możesz identyfikować osobników. Przykładowo możesz wstawiać tam jakiś hash wygenerowany dla każdego wywołania osobno i unikalny, ew. łączony z innymi zmiennymi. Zmienne podajesz w formacie nazwa1=wartosc1&nazwa2=wartosc2. Jeżeli to ma być tylko zliczanie czasu pobytu, to tyle wystarczy. ajax.php to plik, który ma być wywoływany tylko i wyłącznie przez JS. Przydałoby się go też odpowiedno zabezpieczyć. Ale najprostsza wersja, bez zabezpieczeń, etc, etc, etc, to np.:
Inna wersja to przykładowo zapisywanie czasu startu sesji do zmiennych sesyjnych, a w pliku AJAX odejmowanie od obecnego czasu, czasu ze zmiennej sesyjnej i dopiero zapisanie tego do bazy, wtedy ma się tylko jedno zapytanie na wywołanie strony:
Pozdrawiam ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 2.05.2025 - 06:23 |