![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 15.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Użytkownik loguje się do serwisu. Mamy session_start(), dodajemy jakieś wartości w $_SESSION[..] itd. Teraz użytkownik, zamiast nacisnąć "wyloguj" wyłącza przeglądarkę przyciskiem [x] Jak wykryć, że nie ma go już na stronie? Jak wykonać polecenia PHP takie jak przy wylogowywaniu, jeżeli nagle urwał wysyłanie rządań do serwera i nie nacisnął "wyloguj"? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Możesz mu przypisać do sesji ostatnią aktywność:
teraz, zakładasz, że długość sesji ma wynosić powiedzmy 10 minut - jeśli gość przekroczy ten czas bezczynności to jest to dla Ciebie jednoznaczna informacja, że jego już na stronie nie ma, a jeśli by nawet był to go wylogowujesz i każesz się zalogować jeszcze raz:
Ten post edytował Michael2318 28.07.2014, 13:42:42 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 420 Pomógł: 44 Dołączył: 22.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Lepiej odpytywać ajaxem co określony czas i aktualizować czy użytkownik jest zalogowany czy nie. Daje to o wiele więcej możliwości. Możesz wylogować użytkownika np. po 30 minutach nawet jak nieprzeładował strony lub nie pozwoloć na wylogowanie użytkownika który nieprzeładował strony a miną już zadany czas.
-------------------- Sztuką jest widzieć to czego nie widać.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 15.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Możesz mu przypisać do sesji ostatnią aktywność: teraz, zakładasz, że długość sesji ma wynosić powiedzmy 10 minut - jeśli gość przekroczy ten czas bezczynności to jest to dla Ciebie jednoznaczna informacja, że jego już na stronie nie ma, a jeśli by nawet był to go wylogowujesz i każesz się zalogować jeszcze raz:
No dobrze, ale w jaki sposób aktywować twój kod, tj.
jeżeli użytkownik wyłączył komputer/przeglądarkę i już w żaden sposób nie wysyła jakichkoliwek rządań, któe mogą odpalić skrypt php na mojej stronce? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przy nast. wejściu sprawdzasz
ew. zapisujesz sesję w BD z czasami i cyklicznie sprawdzasz przedawnione sesje |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Dodaj w bazie, w tabeli z userami, kolumnę last_active i trzymaj tam ostatni czas aktywności użytkownika, czyli powiedzmy zaraz po połączeniu się z bazą danych ładuj co odświeżenie, obecny czas:
Teraz jak sprawdzić czy user jest obecnie na stronie?
i Ty w ten sposób sprawdzasz czy user jest zalogowany. Userowi za to wyświetlasz kod, który zacytowałeś z mojej wcześniejszej wypowiedzi. Cytat jeżeli użytkownik wyłączył komputer/przeglądarkę i już w żaden sposób nie wysyła jakichkoliwek rządań, któe mogą odpalić skrypt php na mojej stronce? Teoretycznie, idąc tym tropem, owszem - user jest zalogowany. Ale nawet jeśli włączy ten komputer to Ty mu wyświetlisz właśnie ten kod:
i on już nie będzie zalogowany. A jego stan (online/offline) sprawdzasz w ten sposób, który podałem Ci wyżej. Ten post edytował Michael2318 18.08.2014, 10:42:59 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
1. Najpierw powiedz jaki jest cel sprawdzenia czy użytkownik jest zalogowany
2. Czy informacja o zamknięciu przeglądarki jest ci potrzebna od razu, czy możesz ją otrzymać powiedzmy po 1 min? ps. wszystkie podane wyżej metody są i tak do 4 liter, więc nie bierz z nich przykładu ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 00:29 |