簡體   English   中英

從包含的php文件中重新加載/重定向頁面

[英]Reload/redirect page from included php file

我的應用程序具有以下結構:

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會話是否啟動,如果不是,我想刷新頁面。 問題是我所有的文件都包含config.php

現在在config.php中,我具有以下__construct()函數:

    if (isset($_SESSION['@ADMIN'])){
        $result=true;
    }
    else {
        echo "<meta http-equiv=\"refresh\" content=\"0\">";
    }

但這似乎不起作用。 我可以看到響應get_page1_content.php可以刷新標簽,但是瀏覽器沒有刷新。

我的架構錯了嗎? 我該如何解決?

先感謝您。

您可以使用以下命令刷新頁面:

   $page = $_SERVER['PHP_SELF'];
   $sec = "0";
   header("Refresh: $sec; url=$page");

這將每0秒刷新一次頁面,因此, 如果條件為true,則頁面刷新

您可以在get_page1_content.php檢查會話,如果會話已過期,則返回錯誤消息。 在AJAX腳本中,檢查是否有錯誤,並在必要時使用document.location.reload(true) 有關更多信息,請參見https://developer.mozilla.org/en-US/docs/Web/API/Location.reload

由於我執行了許多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();
    }
}); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM