我的应用程序具有以下结构:
main.php 它包括具有数据库凭据的config.php。
page1.php中 它还包括config.php并通过AJAX调用get_page1_content.php。
get_page1_content.php 它还包括config.php,每次page1.php都需要通过ajax调用。
我的网址是www.mysite.com/main.php,我通过JavaScript加载所有pagesX.php文件。
page1.php,get_page1_content.php和main.php第一行的例子:
include("config.php");
$conf=new config();
我想检查php会话是否为UP,如果不是,我想刷新页面。 问题是我的所有文件都包含config.php
现在在config.php中我有以下__construct()函数:
if (isset($_SESSION['@ADMIN'])){
$result=true;
}
else {
echo "<meta http-equiv=\"refresh\" content=\"0\">";
}
但这似乎不起作用。我可以看到我为了响应get_page1_content.php而刷新标签,但浏览器没有刷新。
我的架构错了吗?我该如何解决?
提前谢谢。
答案 0 :(得分:0)
您可以使用以下内容刷新页面:
$page = $_SERVER['PHP_SELF'];
$sec = "0";
header("Refresh: $sec; url=$page");
这将每0秒刷新一次页面,所以,如果如果条件为真,则页面刷新
答案 1 :(得分:0)
您可以检查get_page1_content.php
中的会话,并在会话过期时返回错误消息。在您的AJAX脚本中,检查错误并在必要时使用document.location.reload(true)
。有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Location.reload。
答案 2 :(得分:0)
由于我有很多ajax,我添加了这个函数,每当这是一个AJAX错误时调用。
// Deal with ajax calls errors
$( document ).ajaxError(function(e) {
if ($.cookie('sitecookie')!=null){
console.log("cookie exists");
console.log($.cookie('sitecookie'));
console.log(e);
} else {
alert("Your session expired. Please log in again.");
location.reload();
}
});