【发布时间】: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 在标头调用之前是否有任何内容输出到浏览器?在标题之前发送的任何文本(甚至空格)都会导致问题。