当我将我的网站放在网上时,所有标题都不起作用。但是当我构建它时,只需要在本地数据库等上工作即可。#34; Works"精细。
我目前在网站上收到此错误:
警告:无法修改标题信息 - 已经发送的标题(/customers/5/8/4/infuze.dk/httpd.www/index.php:22中的输出)/ customers / 5/8/4第16行/infuze.dk/httpd.www/includes/functions.php
我稍微使用了google foo,据我所知,我在使用标题之前无法输出任何数据。但我不是这里的情况。
以下是我在网站上使用的代码。
if(empty($_GET['page'])){
header('location: index.php?page=homepage');
}
或至少一个例子
答案 0 :(得分:1)
当您尝试重定向的网页包含信息时,我通常会收到错误“无法修改标头信息 - 已经发送的标头”。检查脚本是否使用echo,include,require等,或者在您尝试重定向的行之前包含HTML标记。
<p>Hello!</p>
<?php
header('location: index.php?page=homepage');
?>
无效,因为它会在尝试重定向之前发送浏览器信息。
<?php
echo "Hi!";
header('location: index.php?page=homepage');
?>
也无法使用,因为它还会在尝试重定向之前发送浏览器信息。
<?php
header('location: index.php?page=homepage');
include('setup.txt');
?>
<h1>Amazing page!</h1>
会工作,因为它会尝试在重定向之后发送浏览器信息,但不会在之前发送。
答案 1 :(得分:0)
在以下情况下,标题不会重定向:
?>
代码后文件中仍有空格。
为避免这种情况,请避免结束?>
标记(文件结束)。
请检查是否有意外写入任何echo
或print
声明。
另外,请检查是否还有HTML
个标记。
如果您关注,所有这一切,您的脚本都将有效。
最后,在文件的开头,输入
ob_start()
此函数会将您的所有页面输出存储在缓冲区中,因此您的重定向将起作用。