我有这显示一个时间表,并且用户可以点击左,右网页的区域前进/后退一周:如何处理一个PHP会话超时
<script type="text/javascript">
var TimesheetOffset = 0;
function TimesheetNav(AdjustBy) {
TimesheetOffset = TimesheetOffset + AdjustBy;
$("#timesheets").load("populate_timesheets.php?start=" + TimesheetOffset);
}
</script>
的populate_timesheets.php
脚本显示在一个DIV面积“时间表”的ID时间表的信息,但前提是用户登录和他们的会话尚未过期 - 如果会话已过期,显示登录页面:
if (!isset($_SESSION['login_user'])) {
header("location: index.php");
}
问题是如果会话超时,index.php
脚本出现在应该显示时间表的地方,而不是替换整个页面。我该如何修改PHP或JavaScript,以便如果会话超时,登录页面会替换整个页面?
你可以将'$(“#timesheets”).load()'改为可以处理响应代码的东西。您也可以轮询服务器以保持会话活动或在超时情况下重定向。也可以更改会话中的gc以使其保持更长时间。很多事情到目前为止你尝试过什么? –
您不能从后台请求重定向“前端”。您需要在前端执行此操作,即使用JavaScript重定向到登录页面。所以你的服务器端脚本只需要返回一个_value_到你的JavaScript,它可以基于这个决定。这可能意味着你不想首先使用.load,因为它没有这种内置的功能。所以一个“正常”的AJAX请求可能是更好的选择,它给了你更多的灵活性来对这两种不同的情况作出反应。 – CBroe