当我将网页重定向到另一个网页header("location:popup.php");
时,会出现以下错误 -
无法修改标题信息 - 已在第320行的C:\ xampp \ htdocs \ 303 \ levelupdate.php中发送的标题(输出从C:\ xampp \ htdocs \ 303 \ levelupdate.php:289开始)
答案 0 :(得分:4)
如果尚未向浏览器发送任何内容,则只能进行重定向。这意味着您必须执行以下两项操作之一:
如果您需要在发送任何数据之前重定向,请确定。
使用ob_start
保留页面,直到完成处理。一旦您抛出header
调用,它将转储缓冲副本并发送标头。但是你必须在开头调用ob_start
,以便捕获任何输出。它的PHP页面应该为您提供一些线索。
我个人的偏好在于输出缓冲区(ob),但这意味着在整个页面完成渲染之前,没有数据被发送到客户端。如果页面需要很长时间才能生成, 有时会使网站看起来有点慢。
您可以通过调用ob_flush
来缓解缓慢,缓冲区的内容将缓冲区的内容发送给客户端。一旦您知道不需要发送header
更改,我建议您尽快执行此操作。但它完全是可选的,不值得简单快速的脚本。
答案 1 :(得分:0)
此错误表示已将某些正文文本发送到浏览器。这是不允许的,因为标题总是先行。也许有空格,或者你回复HTML?
输出也可能是先前的错误。 header('location: ...')
需要完全限定的网址(即使用http://domain.com)。
答案 2 :(得分:0)
header命令仅在没有输出到页面的情况下才有效。因此,您需要确保在调用之前没有将html或任何其他输出(如php echos)发送到页面。
在php声明之前检查文件顶部是否有空行。
答案 3 :(得分:0)
这意味着您在执行标题之前已经输出了一些内容(即echo)(“location:popup.php”),因此它不起作用。
答案 4 :(得分:0)