【问题标题】:PHP header on an included file包含文件上的 PHP 标头
【发布时间】:2014-09-15 15:20:05
【问题描述】:

我有一个典型的 PHP 应用程序结构。像这样的

index.php

include('header.php');

HTML content

include('footer.php');

在 header.php 中有一个检查和函数调用

include('loginFunctions.php');

if (!userLoggedIn()){
  loginRedirect();
}

loginfunctions.php

function loginRedirect(){
  header('location: login.php');
  exit();
}

问题在于,如果用户已登录,转到某个页面,然后在他们注销时计时器到期,则标头重定向会在 header.php 页面中加载 login.php 页面。所以用户被困在他们正在导航的任何页面上,现在在同一页面中看到登录页面。为什么标头不重定向浏览器?还有其他方法可以做到这一点吗?我需要该功能对所有页面都是通用的,这就是为什么它在 header.php 中

【问题讨论】:

  • 快查,login.php是在同一个目录吗?还需要来自 userLoggedin() 的代码;
  • 您可以将这些规则添加到您的.htaccess 以抛出所有可用的错误。 php_flag display_startup_errors onphp_flag display_errors onphp_flag html_errors on
  • 每个文件都在同一个目录中。没有错误。只是将login.php文件加载到header.php中,而不是重定向浏览器。
  • 请发布更多代码。
  • @tdoakiiii 在标头调用之前是否有任何内容输出到浏览器?在标题之前发送的任何文本(甚至空格)都会导致问题。

标签: php html


【解决方案1】:

问题在于,有一个 AJAX 请求也在发出 userLoggedIn 函数并从 AJAX 请求加载登录页面。

为了补救,我将结果作为 json 回显返回并使用 js 处理。

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 2013-07-17
    • 2019-12-01
    • 1970-01-01
    • 2012-12-11
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    相关资源
    最近更新 更多