【发布时间】:2016-01-11 23:38:09
【问题描述】:
我已经创建了一个登录页面和一个登录页面。登录页面的PHP代码为:
<?php
session_start();
include 'functions.php';
if(isValid()){
header('Location: logged.php');
exit;
}
?>
记录页面的代码是:
<?php
session_start();
include 'functions.php';
if(!isValid()){
header('Location: login.php');
exit;
}
?>
在此代码之前没有任何内容。在代码之后,login.php 页面中有登录表单,logged.php 页面中有一些信息。
isValid() 函数是正确的,因为我已经使用 isvalid.php 页面对其进行了测试,当用户正确登录时返回 1,如果没有用户登录或会话中保存的信息错误则返回 0。
如果我使用 login.php 页面中的表单登录,我可以在 logged.php 页面中看到所有信息。如果我尝试返回 login.php,我将被重定向到 logged.php。
如果我没有登录并且我尝试访问logged.php,输出是一个空白页面,没有任何重定向到login.php 页面。 PHP 应该将我重定向到登录页面!
我在另一个讨论中看到建议调试是否有带有 headers_sent() 函数的输出。
当我放这样的调试代码时
<?php
if(headers_sent())
echo "TRUE";
在第一行,它在登录页面中返回 TRUE,在登录页面中没有任何内容。
有什么问题?
【问题讨论】:
-
尝试一次不包含函数。或者删除functions.php中的任何
?>。之后的任何空格或换行符都将被视为输出,因此标题(对于该 output9 已经发送。