我有一个函数,'redirect_to()'写在php脚本上,在我的自定义CMS上成功更新页面后调用。它在localhost上工作正常,但是当我在我的实际域上尝试它时,我收到以下错误消息:
警告:无法修改标题信息 - 已经发送的标题(输出在/hermes/bosweb/web119/b1192/ipg.typaldosnetcom/edit_listing.php:7开始)/hermes/bosweb/web119/b1192/ipg.typaldosnetcom第20行/includes/functions.php
以下是redirect_to()函数的代码:
function redirect_to ($location = NULL) {
if ($location != NULL) {
header("Location: {$location}");
exit;
}
}
我确保在输出任何HTML之前调用该函数,所以我不确定问题到底是什么。
我的问题:为什么我收到此错误?
答案 0 :(得分:2)
这不是谎言。在达到这一点之前,你已经输出了一些东西。检查错误消息中提到的位置。
向我们展示所提到的每个文件的前25行。
答案 1 :(得分:1)
在设置标题之前,您已将输出发送到页面。首先你需要设置标题,然后输出就可以了。
它甚至可以是空白。
答案 2 :(得分:0)
这意味着已在建议的行上输出了某些内容。试着去看看它的作用。
如果您自己找不到问题,请尝试粘贴该位置的周围代码以获得更好的说明。
答案 3 :(得分:0)
一个常见的原因是在你包含的php文件之后有一行......
简单解决方案:删除关闭的php标记“?>”来自所有文件,因为它不需要..
答案 4 :(得分:0)
使用输出缓冲:
<?php
ob_start();
// Test buffered output.
echo 'hello world';
function redirect_to ($location = NULL) {
if ($location != NULL) {
header('Location: ' . $location);
exit;
}
}
// rest of php file here
ob_end_flush();
?>
答案 5 :(得分:0)
您可以通过删除任何关闭的php脚本标记来测试在打开php-script标记之前是否有字符。这样你就可以确定没有留下任何角色(不需要)。