![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 10.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
czy da się stwierdzić skryptem PHP że użytkownik zamknął stronę? albo czy istnieje blokada wykonywania skryptu po zamknięciu przeglądarki? (tylko PHP) wystarczy mi tylko odp "tak" "nie"... i malutka podpowiedź ![]() |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 12 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Niech zgadnę ... sprawdzenie czy użytkownik jest zalogowany?
Też nad tym myślałem jak to zrobić. Ale nie znalazłem sposobu. Ja z logowaniem mam inny. Ten post edytował lessi 31.12.2009, 08:55:49 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 869 Pomógł: 53 Dołączył: 20.10.2003 Skąd: Przeworsk Ostrzeżenie: (0%) ![]() ![]() |
Bardzo pomógłby JS, ale skoro tylko w PHP to można co kilka sekund wysyłać do serwera ze strony użytkownika informację i zapisywać je w bazie. Jako identyfikator możesz użyć time zapisany w sesjach użytkownika przy pierwszym wejściu.
Skrypt odświeżający możesz umieścić w iframe (nie za dobre rozwiązanie, zniknie w HTML 5) i odświeżać ramkę HTML-em co x sekund. Równie dobrze można zrobić wysyłanie informacji o wizycie przy przejściu na podstrony, ale pierwsze rozwiązanie bardziej przybliży ci czas zamknięcia. Pamiętaj, że niektóre przeglądarki (np. IE 6 w windosyfie) podczas odświeżania strony puszcza krótki dźwięk informujący, a to za kolei może być denerwujące dla użytkownika. Ten post edytował Kildyt 31.12.2009, 09:30:13 -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 12 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja rozwiązałem to innym sposobem. Wraz z odświeżaniem wysyła czas wykonania. Później funkcją
patrzy czy użytkownik wykonał jakąś akcję w przeciągu 5 min. Jeżeli tak to wyświetla. Jeżeli nie to nie. Oczywiście to jest mysql . Ale samym php chyba nie da się dokładnie porównać czasu. Próbowałem ale jest błąd o równej godzinie np. 9:00 do 9:05 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 869 Pomógł: 53 Dołączył: 20.10.2003 Skąd: Przeworsk Ostrzeżenie: (0%) ![]() ![]() |
Ja rozwiązałem to innym sposobem. Wraz z odświeżaniem wysyła czas wykonania. Później funkcją patrzy czy użytkownik wykonał jakąś akcję w przeciągu 5 min. Jeżeli tak to wyświetla. Jeżeli nie to nie. Oczywiście to jest mysql . Ale samym php chyba nie da się dokładnie porównać czasu. Próbowałem ale jest błąd o równej godzinie np. 9:00 do 9:05 Nie za bardzo rozumiem o co ci chodzi. Najlepiej czas porównywać w formie zwróconej wartości funkcji time. Dopiero wtedy poprzez date i strtotime można wyświetlić ją w żądanym formacie. W jaki sposób rozpoznajesz użytkowników? -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 12 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Gdy użytkownik się zaloguje dodaje że jest zalogowany (jedynka w swoim rekordzie)oraz od tej pory za każdym razem gdy przeładuje stronę będzie dodawał do bazy danych godzinę now() (mysql). Później docieramy do Zalogowani użytkownicy. Jeżeli nie jest zalogowany to go nie wyświetla. Jednak może się tak stać, że użytkownik nie wyloguje się i zamknie przeglądarkę, (stąd też myślę że o to chodzi Maciasplus) a w bazie zostanie jedynka. Wiec po to jest ten czas żeby badać aktywność użytkownika. Wtedy
Wyświetla wszystkich użytkowników którzy mają jedynkę w swoim rekordzie oraz różnica pomiędzy teraz a ostatnią akcją nie jest większa niż 5 min. Może da się inaczej zrobić to też będę wdzięczny. PS. Ja początku miałem błąd ponieważ używałem tylko funkcji date. I stąd i wychodził czas ujemny. PS2. sorry Maciasplus że tak się rozpisuje w twoim temacie. Ten post edytował lessi 31.12.2009, 10:03:19 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
skrypt działa jako licznik online, ale wystarczy że sprawdzisz czy jest tam ip użytkownika i masz czy jest zalogowany ![]() EDIT: skrypt ofc nie mój, znalazłem kiedyś w sieci ![]() Ten post edytował Pawel_W 31.12.2009, 10:05:51 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 869 Pomógł: 53 Dołączył: 20.10.2003 Skąd: Przeworsk Ostrzeżenie: (0%) ![]() ![]() |
skrypt działa jako licznik online, ale wystarczy że sprawdzisz czy jest tam ip użytkownika i masz czy jest zalogowany IMHO adres ip nie jest najlepszą metodą identyfikowania użytkownika.
![]() -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 12 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 10.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
... skoro tylko w PHP to można co kilka sekund wysyłać do serwera ze strony użytkownika informację i zapisywać je w bazie. Jako identyfikator możesz użyć time zapisany w sesjach użytkownika przy pierwszym wejściu. Tak też zrobiłem ale po zamknięciu strony skrypt jest dokańczany na serwerze aż do set_time_limit jakiś inny sposób? ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:52 |