Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%)
|
|
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
a jak wygląda magiczna funkcja setOnline(false); (IMG:style_emoticons/default/questionmark.gif)
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%)
|
Chciałbym, aby skrypt po wykryciu zamknięcia przeglądanej strony ustalał w bazie, że ktoś jest offline. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
to Ci wszytko powie, bo prawdopodobnie problem leży przy przesyłaniu (IMG:style_emoticons/default/smile.gif) |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%)
|
Po wyjściu ze strony nadal w bazie mam info, że użytkownik jest online (IMG:style_emoticons/default/sad.gif)
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%)
|
Tutaj:
Kod setOnline("false"); Chyba powinno być: Kod setOnline("no");
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%)
|
No faktycznie (IMG:style_emoticons/default/facepalmxd.gif)
Ale w dalszym ciągu użytkownik jest online, choć nie powinien... |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%)
|
Może funkcja zmieniająca status w bazie nie działa prawidłowo. Spróbuj zasymulować wyłączenie przeglądarki i sprawdź w konsoli co zostanie zwrócone.
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%)
|
W dalszym ciągu nie działa...
plik service.php
online.php
Nie mam pojęcia dlaczego to nie chce działać. |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%)
|
Od sprawdzenia na pewno nie zadziała. Co sie wyświetla w konsoli? Masz pewność, że skrypt jest odpalany? Wyświetl w nim coś i sprawdź konsole.
|
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 565 Pomógł: 15 Dołączył: 11.10.2010 Ostrzeżenie: (20%)
|
A jaką masz pewność, że request jest wysyłany na serwer? Może zapytanie nie zdąży być wysłane przed zamknięciem przeglądarki, hmm? Nawet o tym nie pomyślałem... Także więc ta metoda odpada. W takim razie w jaki inny sposób sprawdzić czy użytkownik jest online/offline? |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%)
|
Nawet o tym nie pomyślałem... Także więc ta metoda odpada. W takim razie w jaki inny sposób sprawdzić czy użytkownik jest online/offline? Jeśli chcesz mieć tak precyzyjną informacją to nawiąż socket connection z serwerem. Jesli może być mniej dokąłdnie, załóż, że np. po 5 min. od ostatniej aktywnosci user jest offline. |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
w normalnym przypadku czyli użytkownik zalogował się i wylogował to oczywiście ustawiaj przy logowaniu na online i przy wylogowaniu na offline, a jak zamknie okno to po prostu spr status po czasie życia sesji, jeśli wygasła to ustawiasz automatycznie na offline i wylogowujesz (IMG:style_emoticons/default/wink.gif)
Ten post edytował com 14.10.2013, 17:39:24 |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
@com, autorowi chyba raczej chodziło o zliczanie użytkowników, którzy obecnie są online, a nie o wylogowywanie.
@Dominator, o ile pomysł z nawiązywaniem socketowego połączenia wydaje mi się trochę przerostem formy nad treścią, o tyle możesz wykonywać na serwer zapytania AJAX w określonym interwale, np. co 30 sekund i odświeżać rekord danego użytkownika w bazie. A skrypt wyświetlający ilość userów online zliczałby tylko te rekordy, które są młodsze niż 30 sekund. Proste i w miarę dokładne (IMG:style_emoticons/default/wink.gif) |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
Chciałbym, aby skrypt po wykryciu zamknięcia przeglądanej strony ustalał w bazie, że ktoś jest offline. sowiq Chyba jednak nie, chyba że od tamtego czasu coś sie zmieniło (IMG:style_emoticons/default/wink.gif) Ten post edytował com 14.10.2013, 20:52:04 |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
@com, ogólnie rzecz biorąc sprowadza się to do jednego.
a jak zamknie okno to po prostu spr status po czasie życia sesji Jeśli sesje nie są zaimplementowane np. na bazie danych to nie będzie to takie łatwe. Bo niby jak dobierzesz się do danych sesyjnych innego użytkownika z poziomu PHP? Będziesz iterował po wszystkich możliwych (tzn. istniejących na dysku) ID sesji? |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%)
|
Jeśli robisz coś w taki sposób że wysyłasz po zmianie strony to request ajaxowy może zostać przerwany - przede wszystkim dodaj w service.php na początku:
Po drugie: Użyj zwykłego .ajax w trybie synchronicznym - powinno to wymusić zakończenie tej operacji przed zamknięciem strony - choć nie należy na tym polegać :/ Ten post edytował Sephirus 15.10.2013, 07:58:28 |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 00:39 |