我计划的网站是一家高中报纸。最近,管理页面出现了一个趋势问题。当用户创建文章时,由于设置的时间限制,他们已经注销。我想在警报中编程,告诉用户他们已经注销,这样他们就可以复制他们的文章并将其粘贴回原位。这是我们的超时代码:
// 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();]下和[setcookie("username",",time()-3600);]上放置一个javascript警报,但没有任何结果。我还试着把它放在[session_destroy();]上面,但这使得页面甚至没有计时。
当函数[session_destroy();]运行时,如何获得一个简单的Javascript警报?
在取消设置会话之前,检查一下是否还有五分钟?
if($_GET['endsession'] < time() + 5*60) {
//alert the user
}
if($_GET['endsession']) {
//your code to unset the session
}
假设$_GET['endsession']
包含时间戳。如果不是这样的话,你也可以改变它或其他什么,但我认为总体思路是明确的。
也许在你的身体标签中:
<body onload="window.setTimeout(function() {window.alert('You have been logged out');},600000);">
这将在10分钟(600秒/600000毫秒)时在浏览器中发出警报,称"您已注销"。
你也可以在身体里做同样的效果:
<script>window.setTimeout(function() {window.alert('You have been logged out');},600000);</script>
http://www.w3schools.com/jsref/met_win_settimeout.asp