Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我收到警告:无法修改标题信息-标题已由发送(输出开始于…)?_Php_Function_Search_Header - Fatal编程技术网

Php 为什么我收到警告:无法修改标题信息-标题已由发送(输出开始于…)?

Php 为什么我收到警告:无法修改标题信息-标题已由发送(输出开始于…)?,php,function,search,header,Php,Function,Search,Header,我正在重用一个搜索PHP脚本,但出现以下错误: 警告:无法修改标题信息-标题已由发送 输出开始于/Volumes/Work/MAMP/PC Flag/php_scripts/conconnect.php:2 in/Volumes/Work/MAMP/PC 第63行的Flag/includes/search.php 第2行conconnect.php: $con = mysqli_connect("localhost", "root", "root", "cms"); 第63行search.ph

我正在重用一个搜索PHP脚本,但出现以下错误:

警告:无法修改标题信息-标题已由发送 输出开始于/Volumes/Work/MAMP/PC Flag/php_scripts/conconnect.php:2 in/Volumes/Work/MAMP/PC 第63行的Flag/includes/search.php

第2行conconnect.php:

$con = mysqli_connect("localhost", "root", "root", "cms");
第63行search.php:

header('Location: search-page.php?keywords=' . urlencode($keywords));
有什么问题


我还需要指出的是,脚本不再像应该的那样将我重定向到search-page.php。

这是因为已经发送了输出。如果您有任何内容,则无法编辑标题信息

这是因为已经发送了输出。如果您有任何内容,则无法编辑标题信息

您已将标头作为错误状态发送。请调查

这通常发生在打印到输出缓冲区的行之前

确保您使用的UTF-8没有BOM文档编码-BOM符号在大多数文本编辑器中是不可见的,但可以解释为强制发送HTTP头的内容


您可以使用

调试您的输出,因为您已经将标题作为错误状态发送。请调查

这通常发生在打印到输出缓冲区的行之前

确保您使用的UTF-8没有BOM文档编码-BOM符号在大多数文本编辑器中是不可见的,但可以解释为强制发送HTTP头的内容


您可以使用

调试输出。您收到的错误似乎是因为发生了输出。您可以使用以下代码修复它:

if (headers_sent()) {
    ob_clean();
}  

刚刚找到。

您收到的错误似乎是因为发生了输出。您可以使用以下代码修复它:

if (headers_sent()) {
    ob_clean();
}  
刚刚找到。

当您使用header时,它不应该是任何输出,甚至不应该是空格,您有两种解决方案:

肮脏的 在标头之前使用以清除输出缓冲区

ob_clean();
header('Location: search-page.php?keywords=' . urlencode($keywords));
正确的 在脚本和请求路径中搜索任何输出,之前的内容通常是导致这种情况的原因

调试 此代码段可以帮助您找出代码中的输出位置:

var_dump(ob_get_contents());die()
把这个放在第63行之前

Javascript变通方法 如果一切都失败了,您还有另一个选择,使用javascript重定向,尽管我建议您继续尝试,但不要走到这一步:

替换标题。。。为此:

echo '<script>window.location.href="search-page.php?keywords=' . urlencode($keywords)) . '";</script>';
当您使用header时,它不应该是任何输出,甚至不应该是空格,您有两种解决方案:

肮脏的 在标头之前使用以清除输出缓冲区

ob_clean();
header('Location: search-page.php?keywords=' . urlencode($keywords));
正确的 在脚本和请求路径中搜索任何输出,之前的内容通常是导致这种情况的原因

调试 此代码段可以帮助您找出代码中的输出位置:

var_dump(ob_get_contents());die()
把这个放在第63行之前

Javascript变通方法 如果一切都失败了,您还有另一个选择,使用javascript重定向,尽管我建议您继续尝试,但不要走到这一步:

替换标题。。。为此:

echo '<script>window.location.href="search-page.php?keywords=' . urlencode($keywords)) . '";</script>';

你在放球头之前有没有回音?在放球头之前有没有回音?这是一个很好的答案,和我的答案一样,但解释得更好IMO@Ultra您提到的UTF-8 BOM也是一个重要的要点。我在conconnect.php中删除了一些空格,现在我在header.php第22行中得到了相同的错误。在标题中,我没有任何php代码或空格。此外,ob_clean也不起作用。当我放置var_dump时,它会显示boolfalse。尝试将所有文件转换为UTF-8,而不使用BOM,记事本++和升华文本是很好的工具,在最坏的情况下,您可以使用javascript重定向;非常感谢您的支持!我希望社区里有更多像你这样的人!这是一个很好的答案,和我的答案一样,但解释得更好IMO@Ultra您提到的UTF-8 BOM也是一个重要的要点。我在conconnect.php中删除了一些空格,现在我在header.php第22行中得到了相同的错误。在标题中,我没有任何php代码或空格。此外,ob_clean也不起作用。当我放置var_dump时,它会显示boolfalse。尝试将所有文件转换为UTF-8,而不使用BOM,记事本++和升华文本是很好的工具,在最坏的情况下,您可以使用javascript重定向;非常感谢您的支持!我希望社区里有更多像你这样的人!不过我同意。但我不确定OP会不会。我得说,错误信息是相当自我解释的。尽管如此,我同意。但我不确定OP会不会。我要说的是,错误信息,是相当自我解释。