我正在开发一个网站,因为我需要引入安全性,我的网站会在10分钟不活动后自动将用户注销。行为是,在大约8分钟不活动时,会弹出一个jquery ui对话框,警告用户他们即将发生超时。用户可以选择保持登录状态,立即退出或不执行任何操作,并在10分钟结束时强制退出。我通过一个javascript代码片段来实现这一点,该代码片段超时(没有鼠标/键盘事件)并在用户执行我认为是“活动”的任何时候重置。
我的问题是我可以为我的单个网页运行这个东西,但不知道如何将它用于完整的域名。我已经想到了cookie来实现这一壮举,但不是很确定。如果有人可以告诉我我将按照我的任务采取哪些方法,那将是非常有可能的。 bly与代码示例
在我的完整域而不是单个网页上运行此超时脚本。可能使用cookie或其他东西。
答案 0 :(得分:1)
我建议不要使用javascript并创建一个完整的PHP解决方案。
这可以通过为用户提供在每个PHP页面上10分钟后过期的cookie来实现。这样,每次访问都会更新cookie,如果他们在那十分钟之后回来,那么cookie就会消失,系统将不再识别它们。
我还建议反对会话,它们可以轻松搞乱,如果你想扩展到多台机器来实现负载平衡,那么管理几乎是不可能的。这不是一个现实的制作工具。
每个页面调用一次 - 这将检查他们是否已经有cookie,如果他们这样做,它将使用相同的值更新它10分钟(60秒乘10分钟)。您可以将“用户”的cookie名称更改为您想要的任何名称。
if(isset($_COOKIE['user'])){
setcookie('user', $_COOKIE['user'], time()+60*10);
//put your user validation code here to make sure the cookie is real
//then you can put your logged in specific data under it.
}
首先授权用户,最有可能在他们登录时,您可以这样做:
setcookie('user', $value, time()+60*10);
如果你想记录某人,你可以这样做:
setcookie('user', '', 0);
祝你好运!
答案 1 :(得分:0)
您可以将会话Cookie设置为在10分钟后过期。使用session_set_cookie_params()
设置cookie的持续时间(第一个参数)。
session_set_cookie_params(600, '/', 'www.example.com', false, false);
session_start();
请务必在session_start()
之前致电。
然后,您将使用JavaScript检查cookie的expires参数。如果它接近过期时间,那么您将使用相同的JavaScript向他们显示警告其会话即将过期的对话框
答案 2 :(得分:0)
您可以使用会话和/或Cookie来解决此问题。您使用它们的方式是,在您的网站的每个页面中,您首先检查cookie /会话,然后才继续。因此,如果您的用户已注销一次,并尝试转到网站上的其他页面,他/她将首先必须登录,然后他才能继续,因为该会话不再可用于该用户。
这种东西 -
<?php
if( $this->session->userdata('logged_in') == FALSE )
{
// Login again
}
else
{
// Display the page
}
?>