php通过session登陆验证后,session失效问题
2017-09-04 09:10
309 查看
只通过
客户端用户输入用户名和密码后,成功登陆。如果用户在一段时间内没有任何操作,session的回收机制有一定概率销毁session数据,导致当用户通过ajax请求数据时,服务端不会返回任何数据。
因为ajax请求相比普通请求,http的header信息中会多一个HTTP_X_REQUESTED_WITH字段,因此,服务端可以通过获取header中是否存在该字段来判断此次请求是否为ajax请求,然后再做出回应。
客户端通过服务端返回的json数据,进行重定向。
if (isset($_SESSION['if_login']))进行登陆验证,出现如下问题:
客户端用户输入用户名和密码后,成功登陆。如果用户在一段时间内没有任何操作,session的回收机制有一定概率销毁session数据,导致当用户通过ajax请求数据时,服务端不会返回任何数据。
解决办法:
if (isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest") { echo json_encode(array('tip'=>'timeout')); } else { redirect(base_url().'login'); };
因为ajax请求相比普通请求,http的header信息中会多一个HTTP_X_REQUESTED_WITH字段,因此,服务端可以通过获取header中是否存在该字段来判断此次请求是否为ajax请求,然后再做出回应。
客户端通过服务端返回的json数据,进行重定向。
相关文章推荐
- session失效后,登陆页面出现在iframe中的问题,适用于带权限框架的项目。
- servlet学习笔记3——用户登录网站(通过session验证登陆用户)
- 一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
- #菜鸟新手EclipseJavaEE&MySQL&Tomcat#关于一个Eclipse中登陆界面通过连接MySQL数据库进行验证的小体验(感谢qq群友引燃的解答让我解决这个小问题)
- 一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
- 一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)(我还没有实验过)
- 一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
- php中session退出登陆问题
- 一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
- Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题
- (转贴)一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
- Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题
- 一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
- Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题
- 关于PHP session登录验证的一个安全问题
- PHP Session 登陆 验证
- 蛙蛙推荐:一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
- PHP登陆Session验证
- Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题
- servlet学习笔记3——用户登录网站(通过session验证登陆用户)