从包含的php文件重新加载/重定向页面

时间:2014-11-09 19:49:11

标签: javascript php jquery ajax http-redirect

我的应用程序具有以下结构:

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而刷新标签,但浏览器没有刷新。

我的架构错了吗?我该如何解决?

提前谢谢。

3 个答案:

答案 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();
    }
});