仔细查看您的包含 - 也许您在关闭后有一个空行?>?
这将导致一些文字空格作为输出发送,从而阻止您进行后续标题调用.
请注意,将关闭?>关闭包含文件是合法的,这是避免此问题的有用习惯用法.
(编辑:查看标题,如果要输出标题,则需要避免执行任何HTML输出,或使用输出缓冲来捕获它).
最后,正如标题的PHP手册页指出的那样,您应该使用完整的URL来重定向:
注意:HTTP/1.1需要绝对URI作为Location的参数: 包括方案,主机名和绝对路径,但某些客户端接受相对URI.你通常可以使用$ _SERVER ['HTTP_HOST'],$ _SERVER ['PHP_SELF']和dirname()自己创建一个相对的URI:
它不仅仅是空白,而是导致错误的PHP块之后的整个HTML输出. (2认同)
T.Todua.. 28
常见问题:
1)命令echo...
之前应该没有输出(即HTML部分)header(...);
.
2)后,header(...);
您必须使用exit();
3)删除任何空白(或换行之前)和后
?>
标记.
4) 检查php文件(以及其他.php
文件,即include
d) - 它们应该具有没有BOM编码的UTF8(而不仅仅是UTF-8).因为默认的UTF8在文件的开头添加了不可见的字符(称为" BOM "),所以你应该避免这样!!!!!!!!!!!
5)使用301或302参考:
header("location: http://example.com", true, 301 ); exit;
6) 打开错误报告.并告诉错误.
7)如果以上都没有帮助,使用JAVASCRIPT重定向(但是,不鼓励的方法),可能是自定义案例中的最后一次机会......:
echo ""; exit;
ya23.. 8
或者,不要考虑文件中某处的换行符或空格,可以缓冲输出.基本上,您ob_start()
在文件的最开始和ob_end_flush()
最后调用.您可以在php.net ob-start功能描述中找到更多详细信息.
编辑: 如果使用缓冲,则可以在header()函数之前和之后输出HTML - 缓冲将忽略输出并仅返回重定向标头.
仔细查看您的包含 - 也许您在关闭后有一个空行?>?
这将导致一些文字空格作为输出发送,从而阻止您进行后续标题调用.
请注意,将关闭?>关闭包含文件是合法的,这是避免此问题的有用习惯用法.
(编辑:查看标题,如果要输出标题,则需要避免执行任何HTML输出,或使用输出缓冲来捕获它).
最后,正如标题的PHP手册页指出的那样,您应该使用完整的URL来重定向:
注意:HTTP/1.1需要绝对URI作为Location的参数: 包括方案,主机名和绝对路径,但某些客户端接受相对URI.你通常可以使用$ _SERVER ['HTTP_HOST'],$ _SERVER ['PHP_SELF']和dirname()自己创建一个相对的URI:
1)命令echo...
之前应该没有输出(即HTML部分)header(...);
.
2)后,header(...);
您必须使用exit();
3)删除任何空白(或换行之前)和后
?>
标记.
4) 检查php文件(以及其他.php
文件,即include
d) - 它们应该具有没有BOM编码的UTF8(而不仅仅是UTF-8).因为默认的UTF8在文件的开头添加了不可见的字符(称为" BOM "),所以你应该避免这样!!!!!!!!!!!
5)使用301或302参考:
header("location: http://example.com", true, 301 ); exit;
6) 打开错误报告.并告诉错误.
7)如果以上都没有帮助,使用JAVASCRIPT重定向(但是,不鼓励的方法),可能是自定义案例中的最后一次机会......:
echo ""; exit;
或者,不要考虑文件中某处的换行符或空格,可以缓冲输出.基本上,您ob_start()
在文件的最开始和ob_end_flush()
最后调用.您可以在php.net ob-start功能描述中找到更多详细信息.
编辑: 如果使用缓冲,则可以在header()函数之前和之后输出HTML - 缓冲将忽略输出并仅返回重定向标头.
试试这个 :
**ob_start();** include('header.php'); $name = $_POST['name']; $score = $_POST['score']; $dept = $_POST['dept']; $MyDB->prep("INSERT INTO demo (`id`,`name`,`score`,`dept`, `date`) VALUES ('','$name','$score','$dept','$date')"); // Bind a value to our :id hook // Produces: SELECT * FROM demo_table WHERE id = '23' $MyDB->bind(':date', $date); // Run the query $MyDB->run(); header('Location:index.php'); **ob_end_flush();** exit;