作为一个Web应用程序的一部分,我建我需要检查,如果用户在每当更改页面登录。 在一个普通的非Ajax网站,这是容易的,因为我可以把PHP会话条件语句中的标题,标题被称为在每一页上的变化将决定登录页面是否显示与否,但看到头文件仅Ajax应用程序,这是初始加载内设置一次,我怎么能检查每当用户进行AJAX页面请求的会话是否仍然有效? 由于我使用pushState的和popState我知道我可以设置运行每当URL被改变的条件下,但我不知道如何编写检查运行时发生这种情况。
任何和所有帮助表示赞赏。
谢谢。
您应该返回false,以便你可以做一些聪明的,喜欢的用户重定向到一个登录页面,或更改标题,你在你的问题提了,而不是用杀死脚本die('false')
即
if(!isset($_SESSION['valid_user'])) {
return false;
}
或者更好的,返回一个JSON对象到脚本和使用jQuery / javascript来改变标题。
$response = array();
if(!isset($_SESSION['valid_user'])) {
$response['logged_in'] = false;
} else {
$response['logged_in'] = true;
}
// return to jquery for handling
return json_encode($response);
无论哪种方式,你说你正在构建一个Web应用程序,所以你可能想尝试处理事件,而不是终止程序。
创建一个PHP页面,检查了会议,并返回true或false。
因此,如果用户没有登录,只要你做一个AJAX请求和会话没有用户信息,只有字符串返回false,你可以使用Ajax回调检查显示正确的信息
EG
if(!isset($_SESSION['user'])) die('false');
然后在你的Ajax回调,您可以检查是否响应是假的,或者处理数据的另一种方式EG
$.ajax({"url" : url, "success" : function(response){
if(response == 'false')
{
// display a login screen or redirect the user to a login page
// E.G showLogin() or document.location = '/login.php';
} else {
// to something else with the response if the user is logged in
}
});