所以我一直在跟踪这个“已发送的标题”错误一周了。
我已经检查了
当我尝试直接从“登录”页面转到主页时发生错误:
此代码执行:
$redirect_to = "Location:" . BASE_URL . "src/home.php";
exit(header($redirect_to));
我收到了这个错误:
警告:无法修改标题信息 - 已在/home/brekra50/groupxsolutions.com/index.php上发送的输出(/home/brekra50/groupxsolutions.com/inc/header_start.html:10上的输出) 103
但....
如果我返回登录页面并单击页脚中的“联系我们”按钮,则联系页面会打开。如果我然后单击联系页面上的“主页”按钮,主页(刚刚发出警告)现在打开没有问题!
在这种情况下,我将使用此代码点击按钮打开主页;
<li ><a href=<?php echo BASE_URL ."src/home.php"; ?> class=<?php echo set_nav_classes(HOME_PAGE, $curr_page); ?> >Home</a></li>
这显然是我的问题的一些线索,但我无法弄清楚。 header()函数本身是否发送标题,以便当主页从该函数打开时,警告会被触发?如果是这样,我该如何解决这个问题?
以下是header_start.html第10行的代码:
<link rel="stylesheet" href= <?php echo BASE_URL . "css/fix.css"; ?> type="text/css" media="screen">
以下是index.php文件中第102和103行的代码:
$redirect_to = "Location:" . BASE_URL . "src/home.php";
exit(header($redirect_to));
“JustOn ......”我认为已经指出了正确的方向。我在index.php页面的最顶部有两个“require_once()”调用,它必须在调用header()之前发生。我认为这是输出问题。
现在......该怎么做。
答案 0 :(得分:0)
现在我明白了&#34; include()&#34;和&#34;要求()&#34;函数也是输出并导致我的错误,我无法摆脱它们,因为它们是整个网站设计的关键。
所以在php文档中我发现了一个代码片段,它允许我用javascript打开我的页面,这避免了整个&#34;标题开始&#34;问题。
if (!headers_sent()) {
$redirect_to = "Location:" . BASE_URL . "src/home.php";
exit(header($redirect_to));
} else {
$filename = BASE_URL . "src/home.php";
echo '<script type="text/javascript">';
echo 'window.location.href="' . $filename . '";';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url=' . $filename . '" />';
echo '<noscript>';
exit;
}
&#13;