我遇到了以下代码。我不知道为什么带标题/位置的第二个不断给我一个空白页面。
index.php
和user.php
以及login.php
都在主文件夹中。
以下输出false
:
<?php
include('functions/check.php');
if (test())
{
echo "True";
}
else
{
echo "false";
}
?>
但是当我尝试这个时,我得到一个空白页面:
<?php
include('functions/check.php');
if (test())
{
header("Location: user.php");
}
else
{
header("Location: login.php");
}
?>
我尝试了所有类型的不同变体:
header("Location: /login.php");
答案 0 :(得分:2)
找到了一个非常有用的解决方法:
//在文档开始时
<?php ob_start(); ?>
//在文档末尾
<?php ob_end_flush(); ?>
答案 1 :(得分:0)
使用完整的网址而不是相对网址。
答案 2 :(得分:0)
在调用标题之前,您必须确保没有打印任何文本(“位置:xxx”);
检查您为echo或print_r包含的代码。
答案 3 :(得分:0)
在发送新标题之前,页面会有某种输出。在使用命令之前,请确保没有任何内容输出到页面。它甚至可能是一个奇怪的符号,例如记事本在文件的开头添加了一个奇怪的符号,它不可见,但它就在那里,所以它会以HTML格式打印到页面上。