<?php
if (empty ($session->LoginTime()) {
$session->UpdateTime(); //jesli user dopiero sie zalogowal(czyli $session->LoginTime() jest puste, to zapisujemy do sesji aktualny czas
$db->ZapiszCzasDoBazy($session->LoginTime(), $session->IDUser); //zapisujemy czas ostatniego logowania do bazy
}
elseif (!empty ($session->LoginTime()) {
// jesli user jest zalogowany, sprawdzamy czy czas jego ostatniego logowania/badz przebywania na stronie
if ($time->Minutes($time->Now() - $session->LoginTime()) > 5)
{
// sprawdzamy, czy czas ostatniej obecnosci w serwisie jest wiekszy niz 5 minut te
mu, $time->Minutes zamieniamy czas na minuty
$session->UpdateTime();
$db->ZapiszCzasDoBazy($session->LoginTime(), $session->IDUser); //zapisujemy czas ostatniego logowania do bazy
}
}
?>
Poprawka u gory.
Nie umiem tego ujac prostymi slowami, ale postaram sie:
- User wchodzi pierwszy raz, loguje sie - zapisujemy do sesji czas, kiedy zalogowal sie (format 22-12-2007 11:11:11). Zapisujemy te date do bazy w polu odpowiedzialnym za ostatnie logowanie.
- User buszuje po stronce, skrypt sprawdza, czy jego czas ostatniego logowania jest aktualny, by wyswietlic go na liscie zalogowanych userow. Ustalamy, ze mianem zalogowanego, okreslamy usera, ktory byl aktywny w ciagu ostatnich 5 minut. Zeby to zrobic, musimy sprawdzic jego czas ostatniego logowania (od aktualnego czasu, odjac czas logowania usera). Jesli roznica w minutach bedzie wieksza niz ustalone 5 minut, aktualizujemy czas i zapisujemy go do bazy.
No usera odczytasz z id zapisanego chocby z sesji.