Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyrzucanie użytkowników
Forum PHP.pl > Forum > Przedszkole
Damalin
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. }
Niree
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.
phpamator
Chcesz wyręczyć sesje albo cookies ?
Czy nie powinno się to odbywać automatycznie po upływie określonego czasu ?

... tak się tylko pytam 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.
r4xz
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.
Niree
Mam jeszcze inny pomysł, daj cały kod gdzie wyświetlasz, że user jest online lub offline.
nospor
Pytasz juz o to w innym temacie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.