[英]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.