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:
<?php
// wstępne jakieś instrukcje
// ...
if ( $userdata['last_active']+(10
*60
) < time() ) {
// user przekroczył limit czasu
header('Location: logowanie.php'); }
$sql = "UPDATE `users_table` SET last_active = ".time()." WHERE user_id = ".$userdata['user_id']; {
}
Teraz jak sprawdzić czy user jest obecnie na stronie?
$dlugosc_sesji = 10; // w minutach
if ( ($userdata['last_active'] + ($dlugosc_sesji*60
)) < time() ) {
echo 'ten user nie jest zalogowany, jego dlugosc sesji przekroczyla 10min'; }
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:
if ( $_SESSION['last_active']+(10
*60
) < time() ) {
// user przekroczył limit czasu
header('Location: logowanie.php'); }
i on już nie będzie zalogowany. A jego stan (online/offline) sprawdzasz w ten sposób, który podałem Ci wyżej.