我想檢查用戶是否idle for more than 5 minutes
,他們將be redirected to login page
。我不知道這樣做的最佳做法。給我的解決方案。我用codeigniter編碼。如何檢查會話過期時用戶閒置codeigniter
回答
這可以與jQuery/JavaScript的/ Ajax和一個笨功能的組合來完成。
JS
<script type="text/javascript">
var currentSessionValue = 1;
// pseudo code
setTimeout(checkSession, 5000);
function checkSession() {
$.ajax({
url: "CheckSession/check_session", //Change this URL as per your settings
success: function(newVal) {
if (newVal != currentSessionValue);
currentSessionValue = newVal;
alert('Session expired.');
window.location = 'Your redirect login URL goes here.';
}
});
}
</script>
笨
class CheckSession extends Controller{
public function __construct(){
session_start();
}
public function check_session(){
//Below last_visited should be updated everytime a page is accessed.
$lastVisitTime = $this->session->userdata("last_visited");
$fiveMinutesBefore = date("YmdHi", "-5 minutes");
echo date("YmdHi", strtotime($lastVisitTime)) > $fiveMinutesBefore > 1 : 0;
}
}
只需將last_visited
時間戳存儲爲會話變量即可。下一次用戶訪問時,檢查當前時間戳與會話中當前時間戳的差異。如果超過5分鐘,請註銷用戶。
$this->load->library('session');
$this->session->set_userdata(array(
'last_visited' => time()
));
我必須檢查每個函數嗎? –
你可能會這樣寫'class xxxx extends MY_Controller {}'..所以在MY_Controller.php中,在'MY_Controller'的__construct中指定這個登錄名。它會自動調用所有操作。 – kawadhiya21
謝謝你,我把你的答案與上面的答案結合起來,它的作品! –
我通過簡單地檢查會話終結嘗試讀取一個變量我存儲在登錄
我放在這My_Controller
在文件夾application/core
,並基於此擴展我所有的其他控制器。
,我有這個功能
function _is_logged_in()
{
return !empty($this->session->userdata('user_id'));
}
在我的課,在__construct
我這樣做
if (!$this->_is_logged_in()) {
$this->_log_out("Session Expired", base_url("login"));
}
所以當我提出一個要求,如果會話已過期,它重定向登錄,無需每5分鐘檢查一次。
- 1. 當用戶閒置3小時時,會話將過期。 php
- 2. 如何檢查用戶何時通過會話過期退出
- 3. 檢查會話設置,codeigniter
- 4. 如何在Redshift中超時閒置用戶會話?
- 5. 如何檢測用戶閒置一段時間並在PHP中銷燬會話?
- 6. 會話超時,如果用戶閒置一定時間
- 7. 如何檢查每一個時間,如果用戶會話中的JavaScript過期
- 8. 如何清除過期的codeigniter會話?
- 9. CodeIgniter中的會話過期
- 10. 幫助w/Codeigniter會話過期時間
- 11. CodeIgniter中的會話過期時間
- 12. CakePHP - 會話超時 - 空閒用戶
- 13. 如何設置PHP空閒會話時頁面空閒
- 14. 自動過期會話並檢測會話是否在Codeigniter中過期
- 15. 檢查Codeigniter會話是否已過期AJAX
- 16. 會話過期,如果我不在閒置asp.net
- 17. 如何通知用戶會話過期
- 18. 如何通過htaccess增加php中的空閒會話過期?
- 19. 我如何檢查Magento中的會話或Cookie過期時間
- 20. Codeigniter:用戶會話不斷到期
- 21. 如何防止閒置用戶的會話放棄(會話明智)
- 22. iPhone會話 - 閒置時超時
- 23. 銷燬會話,如果用戶空閒
- 24. 檢查哪個用戶會話已過期asp.net
- 25. 如何在codeigniter會話過期時執行一個函數
- 26. 檢查/驗證和重用CodeIgniter會話
- 27. CodeIgniter:如何檢查未加載會話庫時是否存在會話
- 28. 如何在用戶會話過期時註冊過期時間Zend Auth
- 29. CodeIgniter通過會話的用戶權限
- 30. 如何在ajax調用功能上檢查會話過期
$ this-> session-> userdata('is_logged_in');來自?你還沒有設置它。 –
我編輯了is_logged_in索引的更多細節。 – Rahi
我把你的答案與第二個答案結合起來,它的工作原理!謝謝。 –