Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> [MySQL][PHP]Wyrzucanie użytkowników
Damalin
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 27.11.2016

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


Witam, mam problem z wyrzucaniem użytkowników, mam skrypt który przy pomocy refresha wyrzuca ludzi nieaktywnych ze strony ale tylko jeśli są na niej, a jeśli już wyjdą z niej to wiszą jako zalogowani przez kilka dni, prosiłbym o pomoc w przerobieniu tego skryptu
  1. $t = strtotime("+15 minutes");
  2. $addtime = date("G:i:s",$t);
  3. $wynik = $laczenie->query("UPDATE users SET czas_aktywnosci = '$addtime' WHERE login = '$login'");
  4. if($_SESSION['aktywnosc'] <= date("G:i:s")){
  5. $wynik = $laczenie->query("UPDATE users SET online = '0' WHERE login = '$login'");
  6. }
Go to the top of the page
+Quote Post
Niree
post
Post #2





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


Ale tutaj nic nie zrobisz. Możesz próbować JS sprawdzać, czy nastąpiło jakieś zdarzenie np. wyłączenie strony lubprzeglądarki , ale PHP nic tu nie wskórasz. Ewentualnie CRON, który sprawdzalby co parę minut ostatnich aktywnych użytkowników. Ale to też wymaga zastanowienia, bo sesja dziala po stronie użytkownika. Musiałbyś zrobić np co 10 minut ustawić skrypt PHP i sprawdzać:

Na użytkownikach zalogowanych 15 minut temu > czy wykonali jakąś akcje na stronie > jeśli wykonali to zostawićaktywność , jeśli nie to wrzucić status offline do mysql.
Go to the top of the page
+Quote Post
phpamator
post
Post #3





Grupa: Zarejestrowani
Postów: 328
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

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


Chcesz wyręczyć sesje albo cookies ?
Czy nie powinno się to odbywać automatycznie po upływie określonego czasu ?

... tak się tylko pytam (IMG:style_emoticons/default/smile.gif)

@Niree chyba słusznie sugeruje, jak powinieneś to zrobić.
Dodałbym na stronie jakiś skrypt aktualizujący aktywność użytkownika np zapisujący aktualny czas, a po stronie servera cronjob sprawdzający tę aktywność, jeśli róznica czasu > 15 minut "off'a" użytkownikowi i po sprawie.

Ten post edytował PHPRexio 11.12.2016, 18:21:40
Go to the top of the page
+Quote Post
r4xz
post
Post #4





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


Zmień podejście do przechowywania danych, nie zapisuj w bazie czy ktoś jest online, ale czas ostatniej wizyty. Następnie musisz zrobić pewne założenie, że aktywni użytkownicy to Ci, którzy byli na stronie w ciągu ostatnich np. 5 min. Podsumowując pobierasz użytkowników, którzy w kolumnie "data_ostatniej_wizyty" mają datę z ostatnich 5 minut - Ci są online.
Go to the top of the page
+Quote Post
Niree
post
Post #5





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


Mam jeszcze inny pomysł, daj cały kod gdzie wyświetlasz, że user jest online lub offline.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pytasz juz o to w innym temacie.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:25