如果SESSION已过期,我仍有部分AJAX调用仍然部分工作。AJAX注销,如果会话已过期
例如:联系我们表单将加载,可以填充并显示为发送,但由于SESSION变量不存在,AJAX调用在后端失败。
我想成立一个通用的一块PHP来检查会话仍然存在,如:
session_start();
<?php if(!isset($_SESSION['userid']) {header('Location: index.php');}?>
但没有与这发生在地方。
我假设header()只会在加载页面时起作用 - 这是正确的吗?
因此,我假设我需要获得AJAX调用才能在会话中返回成功或失败,并从JQUERY重新执行导向。
这是最好的方法吗?可以在AJAX调用上重定向header()吗?有没有另一种方法让重定向工作从AJAX PHP调用?
THX
* UPDATE *
是页面已经加载。 AJAX调用是发送联系人请求的后页加载功能。因此,我认为header()是我从这里阅读的内容中找不到的。 header()会很好,因为它可能位于大型PHP脚本的顶部,并一般地响应设置会话的任何请求。
看起来我必须为使用会话的每个AJAX调用建立一个检查。可以使用通用函数。当会话在AJAX站点上过期时,是否有更简单的方式来记录用户?
没有,实际上应该工作,除非你已经发送了一些输出。你有任何错误? –
@Truth最有可能的是,如果他通过AJAX调用并获取了这些信息,那么他已经有了输出(AJAX调用需要输出),所以除非刷新页面,否则不能更改标题。 –
这里的问题是这个代码发生的地方。 AJAX调用本身尚未发送输出,所以仍然有可能。亚当应该改写他的问题并更好地解释它。 –