这些线路:
echo '<br/><br/>'.$_SERVER["SCRIPT_NAME"]."?page=".$pager->GetVariableC."&threadID=".$threadID;
header("Location:".$_SERVER["SCRIPT_NAME"]."?page=".$pager->GetVariableC."&threadID=".$threadID);
给我这个:
/PoliticalForum/Thread/thread.php?page=2&threadID=6 警告:无法修改标头信息 - 已在第348行的C:\ xampp \ htdocs \ PoliticalForum \ Thread \ thread.php中发送的标头(输出从C:\ xampp \ htdocs \ PoliticalForum \ Thread \ comments.php:42开始)
如何在脚本末尾重定向?
答案 0 :(得分:3)
当发生此错误时,您已经通过使用echo或在关闭php标记之后添加了几行来向浏览器发送了一些内容。在重定向之前,请确保没有任何新行或回显。
答案 1 :(得分:1)
使用PHP的header()
将输出发送到客户端的浏览器后,无法重定向。
您可以使用meta
标记:
<meta http-equiv="refresh" content="2;url=http://www.destination.com/">
其中2
是重定向前的时间(以秒为单位),url
是目标。您可以找到有关它的更多信息here(您应该阅读drawbacks部分)。
答案 2 :(得分:0)
在您已经向浏览器发送任何数据后,您无法重定向,在这种情况下,第一行是这样做的。你为什么要打印一些你永远不会看到的东西(浏览器会被立即重定向)?
如果可能,请删除重定向上方的输出行,或者如果无法修改周围的代码,请查看使用输出缓冲区。
答案 3 :(得分:0)
如果您想要输出和重定向,那么您需要使用javascript重定向。 http://www.tizag.com/javascriptT/javascriptredirect.php 你在这里做的是一个HTTP重定向(HTTP 302),它是作为响应发送到浏览器的HTTP标头之一。 此错误消息是由于您回显了内容,该内容具有发送所有缓冲的HTTP标头然后尝试设置标头(但它已经发送)的效果。为了更好地了解这一点,我建议所有Web开发人员安装firebug并监控“网络”选项卡,您将真正更好地掌握标题及其含义。
干杯