当前位置: 首页 > 面试题库 >

我如何停止AJAX调用以使PHP会话保持活动状态

端木乐语
2023-03-14
问题内容

我的网站上使用CakePHP拥有身份验证系统。为此,它使用PHP会话。

我所拥有的是对函数的AJAX调用(在setInterval中每分钟运行一次),该函数检查用户是否仍在登录。如果返回false,则Javascript将获取当前URL并尝试将其重定向,
turn将他们重定向到登录页面。从理论上讲,这是可行的,因为它会主动要求用户重新登录,而不是进行陈旧的会话,后者只会要求用户单击某些内容后立即登录。我的问题是我的AJAX呼叫使会话保持活动状态。所以永远不要注销(我们不想要)

我可以在CakePHP中做任何事情,或者可以使用其他任何方法来阻止这种情况发生吗?


问题答案:

&ajax=检查会话的有效性时,在查询字符串中添加(任何内容)。

然后,更改您的PHP会话代码:

session_start();
if(!isset($_GET["ajax"])) $_SESSION["lastactivity"] = time();
if(now() - $_SESSION["lastactivity"] > 3600){ //3600 seconds
    header("Location: login.php?url="+urlencode(str_replace("&ajax=", "", $_SERVER["REQUEST_URI"])));
    //Example:
    // Location: login.php?url=/sensible/secret.php?mode=show&hide=nothing
    exit;
}


 类似资料:
  • 问题内容: 我正在尝试连接到API,对用户进行身份验证,然后查看用户详细信息。这是通过首先访问登录端点来完成的 登录,然后单击以下内容查看用户详细信息: 所有这些都可以在Web浏览器中使用。但是,一旦我尝试使用Curl,登录就可以正常工作,但是在尝试查看用户详细信息时,我又得到了401未经授权的错误。我相信这是因为Curl没有正确保存会话cookie?有人可以指出为什么它不起作用以及如何解决吗?我

  • 问题内容: 我用来登录远程服务器。 问题 : 当我在工作场所时,它始终保持连接并且可以正常工作。不幸的是,在我在家中与远程服务器连接后,终端会在10到15分钟内死机。 控制台上没有错误/超时报告,但是光标不能再移动了。 输入检查登录用户时,那里有一些僵尸登录用户,我必须手动将其杀死。 这很烦人。谁能帮我? 问题答案: 在客户端运行的ssh守护程序(sshd),如果客户端变为静默(即,不发送信息),

  • 问题内容: 我有一个jQuery Ajax调用,如下所示: 我有这样的Flask方法: tcpdump显示HTTP对话框: 但是,Flask回复时没有保持活动状态。 确实没有实施保持活动的情况吗? 问题答案: Werkzeug的集成Web服务器基于Python标准库的BaseHTTPServer构建。如果将HTTPHTTP协议版本设置为1.1,则BaseHTTPServer似乎支持Keep- Al

  • 问题内容: 我正在使用POST方法。我需要创建一次,并且应该使用Keep Alive Connection。但是我认为,它每次都会建立一个新的连接。 因此,我需要使用 保持活动 连接。 这是我的代码段,很多帮助将不胜感激。 而且logcat日志是: 问题答案: 10:07:29.746:D / org.apache.http.headers(1529):>>连接:保持活动 您正在要求保持活动状态。

  • 我有一个Android应用程序,即时通讯是其中一个关键功能。为了实现IM特性,我们使用基于的推送服务器。 编辑:我曾建议使用前台服务,但下午不喜欢通知托盘总是显示在状态栏,他希望保持干净。 任何建议都将不胜感激!

  • 我们正在使用PingFederate实现一个web SSO解决方案,第三方产品包括SAML2开箱即用。 但是,如果用户仍在积极使用SP,我们正在尝试解决如何停止IDP会话超时的问题。 第三方产品支持请求IDP端的空资源,目的是该URL将导致IDP会话被延长。 我在PingFederate中看不到任何支持这种东西的东西。有人知道这通常是如何解决的吗?有没有一种方法可以扩展PingFederate会话