Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapisanie czasu aktywności na stronie, Czy takie rozwiązanie zapisu ma sens?
maciek st
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.04.2005

Ostrzeżenie: (0%)
-----


Muszę zapisać czas przebywania na stronie zalogowanego użytkownika. Wymyśliłem to tak:

1. w momencie logowania - do zmiennej $_SESSION['czas_logowania'] zapisywany jest jednorazowo aktualny czas (H:M:S).

2. Jeśli użytkownik jest zalogowany
a ) do zmiennej $_SESSION['czas_wylogowania'] za każdym przeładowaniem strony przypisywany jest aktualny czas
b ) w bazie danych za każdym razem aktualizowany jest rekord $_SESSION['czas_logowania'] - $_SESSION['czas_wylogowania']

= w rezultacie mamy rekord logowanie-wylogowanie.

Skrypt mierzy cały czas minus czas jaki użytkownik spędził na ostatniej odsłonie. Dla mnie do przyjęcia.

Pytanie tylko czy nie ma prostszego rozwiązania?

I jeszcze jedno. Wydaje mi się, że za pomocą javascript można zapisać czas zamknięcia przeglądarki? Jak to zrobić?

thx za pomoc

M

Ten post edytował maciek st 17.11.2005, 14:53:23
Go to the top of the page
+Quote Post
smentek
post
Post #2





Grupa: Zarejestrowani
Postów: 130
Pomógł: 11
Dołączył: 7.04.2003

Ostrzeżenie: (10%)
X----


No tak ale w ten sposob masz nie tyle czas wylogowania co czas ostatniego przeladowania strony. Ktora moze roznic sie od czasu wylogowania o wiele minut (w zaleznosci od czasu w jakim twoja sesja jest aktualna)

Zauwaz ze to co uzytkownik rozumie jako czas swojej aktywnosci przy twoim serwisie (jego realna praca) nie musi byc tym samym co czas aktywnosci sesji(logowanie - wylogowanie). Uzytkownik moze miec otwarta przegladarke z jakas tam strona www i kozystac z niej nie przeladowujac stron. Mija powiedzmy godzina, user ciagle przeglada strone i w swoim mniemaniu kozysta z serwisu. Dla serwera jednak juz nie istnieje, bo czas sesji minal...

Gdybys tworzyl program w C++ czy javie moglbys stworzyc sobie logowanie jako obiekt ktory istnial by w pamieci przez caly czas dzialania programu. Napisal bys do swojego obiektu konstruktor ktory zapisywal by w bazie czas logowania, oraz destruktor ktory przed zniszczeniem obiektu dokonywal by drugiego wipisu czasu wylogowania.

php dziala zupelnie inaczej czas zycia obiektow ograniczony jest do wykonania sie danego skryptu co trwa milisekundy.

Javascript jest wykonywana na kliencie (przegladarce) i jest jezykiem sluzacym do prezentacji danych. Z tego co wiem nie jest mozliwe odpalenie jakiegokolwiek kodu php podczas samego zamykania przegladarki ktory uruchomil by interpreter php na odleglym serwerze. Dzialanie javascript jest ograniczone do twojej przegladarki tylko, nie wyslesz wiec zadnego polecenia na serwer z twoimi skryptami php.

Zakladajac ze robisz maly serwis to co stworzyles bedzie ok. Jesli jednak bedzie duzo userow musisz pamietac ze takie zapisy do bazy przy kazdym przeladowaniu strony powoduja obciazenie serwera...

Dobre i to co masz. Nic lepszego nie zrobisz.


--------------------
.:SMENTEK:.
Go to the top of the page
+Quote Post
FiDO
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Cytat(smentek @ 2005-11-18 01:29:53)
Dzialanie javascript jest ograniczone do twojej przegladarki tylko, nie wyslesz wiec zadnego polecenia na serwer z twoimi skryptami php.

Mozna sie wspomoc AJAX'em. I np. co minute update'owac jakiegos timestamp'a w bazie... Jesli ktos ma np. wylaczone JS to wtedy jest tradycyjnie, czyli ostatni zapisany czas jest czasem ostatniego requesta (wtedy caly czas spedzony na stronie od ostatniego requesta przepada.. ), a jak ktos ma JS i odpowiednio nowa przegladarke to zadziala JS, ktory co minute bedzie robil update.. dokladnosc sie znacznie zwiekszy, ale nie wiem czy jest sens sie w takie cos bawic..


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
maciek st
post
Post #4





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.04.2005

Ostrzeżenie: (0%)
-----


temat w sumie można podrążyć, bo pomyślałem teraz o flashu.

Co myślicie o wstawieniu jakiegoś flashowego obiektu, który co X czasu będzie zapisywał rzeczoną już parę logowanie-wylogowanie / uruchamiał skrypt php?

Ominę wtedy wszelkie ograniczenia serwera i może być to w miarę proste rozwiązanie.

C++, java nie wchodzi w grę bo nie znam.

Oczywiście wszystko to jest związane z obciążeniem serwera (zapisywanie co chwila) ale to jak sam stwierdziłeś nie powinno byc bardzo uciążliwe przy małym ruchu na serwerze.

wiem jak to napisać ale chciałbym najpierw przedyskutować, bo pewnie nie zauważam jakiegoś ograniczenia, które pokaże się pod koniec realizacji.

A więc:
Co Wy na połączenie flash (uruchamianie skryptu php co jakś czas) + php (zapisywanie pary logowanie - wylogowanie)
?
Go to the top of the page
+Quote Post
ghostrider
post
Post #5





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 30.09.2005
Skąd: k-rk

Ostrzeżenie: (0%)
-----


mogę się mylić, ale kiedys (dawno) coś takiego zrobiłem na flashu przez getURL
i ktoś po jakiś czasie zauważył ze komputer 'clicka', tzn wydaje dzwiek jak przy kilkaniu linka kiedy wywoływałem getURL, i to bylo denerwujące, ja nie małem wtedy głośników, zresztą dalej nie mam.

NIedawno postowałem tutaj funkcje JS, pozwalajaca na wykonywanie skryptu php bvez odswierzania strony, make_contact sie to nazywało, moze się przyda

Ten post edytował ghostrider 19.11.2005, 12:29:12


--------------------
There are 10 types of people in the world:
-Those who understand binary, and those who don't...
There's no place like 127.0.0.1
Go to the top of the page
+Quote Post
maciek st
post
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.04.2005

Ostrzeżenie: (0%)
-----


można to zrobić przez LOADVARS - chyba nie będzie klikania.

Ale to już chyba dyskusja na innym forum.
(Jak mi się uda zrobić w ten sposób to się podzielę).

"make_contact" nie znalazłem na forum.
Możesz mnie jakoś naprowadzić?
Dzięki

M
Go to the top of the page
+Quote Post
ghostrider
post
Post #7





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 30.09.2005
Skąd: k-rk

Ostrzeżenie: (0%)
-----


tu jest: http://forum.php.pl/index.php?showtopic=37...hl=make_contact


--------------------
There are 10 types of people in the world:
-Those who understand binary, and those who don't...
There's no place like 127.0.0.1
Go to the top of the page
+Quote Post
maciek st
post
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.04.2005

Ostrzeżenie: (0%)
-----


thx wielkie, pobawię się z tym.

Jak zrobię mój pomysł z flashem to wystawię - może komuś się przyda.

Dzięki jeszcze raz.
PZDR

M
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:55