【问题标题】:Reload/redirect page from included php file从包含的 php 文件重新加载/重定向页面
【发布时间】:2015-01-06 02:11:25
【问题描述】:

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

ma​​in.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 但浏览器不刷新。

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

提前谢谢你。

【问题讨论】:

    标签: javascript php jquery ajax http-redirect


    【解决方案1】:

    你可以用这个刷新页面:

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

    这将每0秒刷新一次页面,所以,如果你如果条件为真,那么页面刷新

    【讨论】:

    • 该代码发送一个标头来刷新上次调用 config.php 的 php 文件。因此,我得到了一个请求标头: Refresh:0; url=/beta/v4/adm/inc/get_page1_content.php 而且它不会刷新我的main.php
    • header("Refresh:0");如果现在呢?
    • 我只是模仿了你的结构并对其进行了测试,对我来说效果很好,
    • 我已经更新了我的问题。对 get_page1_content.php 的调用是通过 AJAX 进行的。如果 AJAX 出错,也许可以运行一些代码?
    • ajax 与 jquery 或 ajax 与 javascript ?你可以在谷歌上搜索:(
    【解决方案2】:

    您可以在get_page1_content.php 中检查会话,如果会话过期,则返回错误消息。在您的 AJAX 脚本中,检查错误并在必要时使用 document.location.reload(true)。请参阅https://developer.mozilla.org/en-US/docs/Web/API/Location.reload 了解更多信息。

    【讨论】:

      【解决方案3】:

      由于我有很多 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();
          }
      }); 
      

      【讨论】:

        猜你喜欢
        • 2013-07-27
        • 2012-01-08
        • 1970-01-01
        • 2011-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多