Zjistit jak dlouho je uživatel přihlášen
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jezza03
- Člen | 5
Dobrý den,
potřeboval bych kontrolovat jak dlouho je uživatel přihlášen na stránce.
Pokud se ale odhlásí, tak už by se to nemělo počítat, znova až při
dalším přihlášení.
Tady mám svůj, ten mi hází pořád jen jedno číslo.
public function onlineTime() {
if ($this->user->isLoggedIn()) {
$lastTime = $this->userManager->getUserInfo($this->user->id)->onlinetime;
$nowTime = new DateTime(date('Y-m-d H:i:s'));
$lastTime = new DateTime(date('Y-m-d H:i:s', $lastTime));
$onlineTime = $nowTime->diff($lastTime);
$onlineTime = strtotime($onlineTime->format('Y-m-d H:i:s')) + strtotime($lastTime);
$this->userManager->updateOnlineTime($onlineTime, $this->user->id);
}
}
Tu funkci volám v base presenteru při každém strartupu.
Díky za odpověd.
- Pavel Kravčík
- Člen | 1196
A co zjišťovat existenci session a její datum vytvoření přes fileinfo? Tos nezkoušel?
- Myiyk
- Člen | 321
Při přihlášení si ulož čas do databáze.
S každou další akcí, kterou uživatel udělá si aktualizuj čas poslední aktivity.
Čas poslední aktivity mínus čas přihlášení = doba, jak dlouho byl přihlášen.
Tu aktualizaci času poslední aktivity si dej do startup metody v base presenteru. Tím se bude aktualizovat při každé akci.
Editoval Myiyk (29. 7. 2015 15:24)