带有警告的PHP / Javascript会话超时

时间:2012-07-18 09:57:57

标签: php javascript session popup timeout

有谁知道我可以在哪里阅读教程,或者知道如何创建一个内置警告的基于Javascript的会话超时,以及可选的这些功能:

  • 用户活动重置计时器
  • 与数据库交互(最后一次见到等)
  • 如果不活动,它将注销用户(通过重定向到logout.php 页)
  • 在将用户注销之前,它会显示一条要求的弹出消息 如果他们想继续

不幸的是,我对Javascript知之甚少。

2 个答案:

答案 0 :(得分:6)

我不知道您的网站是如何完成的,但如果做得对,您应该有一个登录会话和某种后端控制系统,如果之前的操作是在X分钟/小时之前完成的,则会拒绝任何操作。自动使用户过期。如果你想实现一些客户端代码,你应该有一个javascript定时器,当过期时间即将完成时提醒用户,你也可以在达到过期时间后将用户重定向到主页或登录页面。这样所有安全功能都在后端,而javascript只能用作显示行为的显示度量。

更新:

setInterval(function(){alert("Hey, your session is ending")},360000);

setInterval(function(){
    redirect();
},720000);

function redirect(){
    document.location = "../logout.php"
}

UPDATE2:

setInterval(function(){
    logout();
},600000);

function logout(){
    if(confirm('Logout?'))
        redirect();
    else
        alert('OK! keeping you logged in')
}

function redirect(){
    document.location = "../logout.php"
}

如果用户想要退出,那么带有此代码的每个页面都会在10分钟后询问。这意味着您的会话本身不会过期,您必须将控件留给用户

答案 1 :(得分:0)

5分钟后退出会话

<script type="text/javascript">
        var interval;
         $(document).on('mousemove', function () {
             clearInterval(interval);
             var coutdown = 5 * 60, $timer = $('.timer'); // After 5 minutes session expired  (mouse button click code)
             $timer.text(coutdown);
             interval = setInterval(function () {
                 $timer.text(--coutdown);

                 if (coutdown === 0) {

                     alert("Session expired. User successfully logged out.");
                     window.location = "UserLogin.php";
                 }

             }, 1000);
         }).mousemove();

         var interval;
                     $(document).on('keydown', function () {
             clearInterval(interval);
             var coutdown =5 * 60, $timer = $('.timer'); // After 5 minutes session expired (keyboard button press code)
             $timer.text(coutdown);
             interval = setInterval(function () {
                 $timer.text(--coutdown);

                 if (coutdown === 0) {

                     alert("Session expired User successfully logout.");
                     window.location = "UserLogin.php";
                 }

             }, 1000);
         }).mousemove();
    <script>



         <html>
            <div class="timer">
                 Time of session display on page 
            </div>
        </html>