如何在帐户超时时提醒管理员用户

时间:2013-11-20 18:40:27

标签: javascript php session alert logout

我编制的网站是一份高中报纸。最近,管理页面一直存在趋势问题。当用户创建文章时,由于设定的时间限制,他们已被注销。我想在警报中编程告诉用户他们已经注销,以便他们可以复制他们的文章并将其粘贴回原位。这是我们的超时代码:

    // Kill Session if session end exists.
    if ($_GET['endsession']) {
        unset($_SESSION['name']);
        unset($_SESSION['access']);
        unset($_COOKIE['username']);
        setcookie("username","",time() - 3600);
        session_destroy();
        header("Location: http://" . $_SERVER['HTTP_HOST'] . "/admin.php");
    }

我试过在[session_destroy();下面放置一个javascript警报; ]以及[setcookie(“username”,“”,time() - 3600); ],但这没有发生任何事情。我也尝试将它放在[session_destroy(); ],但这使得该页面甚至没有时间任何人。

如何在函数[session_destroy();时运行简单的Javascript警报运行?

2 个答案:

答案 0 :(得分:1)

也许在你的身体标签上:

<body onload="window.setTimeout(function() {window.alert('You have been logged out');},600000);">

这将在浏览器中以10分钟(600秒/ 600,000毫秒)发出警告,说“您已经注销”。

你也可以在体内做同样的效果:

<script>window.setTimeout(function() {window.alert('You have been logged out');},600000);</script>

http://www.w3schools.com/jsref/met_win_settimeout.asp

答案 1 :(得分:1)

你如何检查 - 在取消会议之前 - 如果有,比方说,还剩5分钟?

if($_GET['endsession'] < time() + 5*60) {
    //alert the user
}

if($_GET['endsession']) {
    //your code to unset the session
}

假设$_GET['endsession']包含时间戳。如果情况并非如此,你可以改变它或者不论什么,但我认为一般的想法是明确的。