2017-01-25 26 views
1

對於我的網站用戶跟蹤是在用戶的登錄持續時間存儲在數據庫中實現的。我正在使用time()來獲取當前時間。所以,如果註銷未完成,如何存儲用戶登錄時間?

$login_time = time(); // when user logs in 

$logout_time = time(); // when user logs out 

$duration = $logout_time - $login_time;   // duration of login 

但是,如果你不註銷怎麼辦?什麼將是正確的價值存儲在數據庫中?我正在使用PHP,Codeigniter和MySql。

+0

看看/system/libraries/Session.php中的sess_read()和sess_update() –

+0

@Kalyan瀏覽器窗口關閉或會話變量失效怎麼辦? – WeAreRight

+0

可能重複的[如何跟蹤用戶在網站上的使用情況?](http://stackoverflow.com/questions/9011455/how-to-track-user-usage-on-site) –

回答

0

您可以使用sess_expiration 在您的配置文件中,您可以添加下面的行並定義非註銷用戶的超時時間。

$config['sess_expiration'] = 7200; // 2 hours 

如果用戶沒有註銷,這將允許您註銷的默認時間。現在使用這個值可以得到持續時間。 該值以秒爲單位存儲,將其轉換爲分鐘數並從登錄時間中減去。

此外,如果是dosn't幫助您可以使用ci_sessions表。

0

請考慮兩個領域裏,如login_time和logout_time

$login_time = time(); // when user logs in 
$logout_time = time(); // when user logs out 

當用戶將登錄信息,然後儲存時間()上login_time場,並設置logout_time字段爲空。

設置如下行上配置文件

$config['sess_expiration'] = 0; // never expired 

然後,你將需要更新的註銷時間字段,如果用戶註銷其他明智的您將根據當前的時間和它已存儲在數據庫的登錄時間內得到持續。

+0

以及爲什麼要這樣做? – WeAreRight

+0

@JoneDotosvky我編輯了我的答案。你能檢查一下嗎?我認爲這對你有幫助。 – Kamlesh

相關問題