您的位置:首页 > 编程语言 > PHP开发

php通过session登陆验证后,session失效问题

2017-09-04 09:10 309 查看
只通过
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数据,进行重定向。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐