使用AJAX检查PHP会话是否存在或已过期
Check whether a PHP session exists or expired using AJAX
-
如何设置php会话超时,我尝试如下,但我认为它不起作用
ini_set("session.gc_maxlifetime", 600);
-
如何使用ajax(javascript(查明php会话是否存在或过期?
问候
对于#1,请使用session_set_cookie_params()
。在 600秒后过期
session_set_cookie_params(600)
(注意,与常规的setcookie
函数不同,session_set_cookie_params
使用的是你希望它存活的秒数,它不应该是time() + 600
,这是一个常见的错误(
对于数字2,只需制作一个通过AJAX调用的小脚本:
<?php
session_start()
if( empty($_SESSION['active']) ) {
print "Expired"
}
else {
print "Active"
}
?>
在Javascript端(使用JQuery(
$.get('path/to/session_check.php', function(data) {
if( data == "Expired" ) {
alert("Session expired");
} else if (data == "Active" ) {
alert("Session active");
}
});
每次检查时,影子向导关于保持会话有效性的评论都是正确的。
但解决方案很简单。诀窍是以大于会话生存时间的间隔执行AJAX请求。因此,如果您建立了15分钟的会话超时,您可以每隔16分钟或更长时间通过AJAX进行检查。
为了使上述功能发挥作用,您应该手动实现会话超时。你可以阅读这个关于如何设置会话持续时间的有用答案。
希望这能帮助你或任何正在寻找同样东西的人!
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 用于检查数组中是否存在元素的javascript自定义方法
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 正在将事件处理程序添加到不存在的类
- 是否存在React Native“;WEB代码安全防护”;
- 如何在Analytics.js中始终了解最新的cookie过期时间
- 一个密码测试程序,如果存在空格,它会提醒用户
- 验证会话中是否存在对象's数组
- javascript如果图像不存在don't加载它
- 如何查找值是否存在于二叉树中
- IE9的HTML5 Canvas getImageData()函数存在问题
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- CORS-服务器端cookie没有保存在chrome浏览器上
- 检查是否存在使用chrome扩展的javascript库
- 是否存在Javascript Liferay Service库的文档?如何处理错误情况
- 测试mongo脚本中是否存在参数
- 使用AJAX检查PHP会话是否存在或已过期