页面重定向期间出错

时间:2010-06-06 15:54:36

标签: php

当我将网页重定向到另一个网页header("location:popup.php");时,会出现以下错误 -

无法修改标题信息 - 已在第320行的C:\ xampp \ htdocs \ 303 \ levelupdate.php中发送的标题(输出从C:\ xampp \ htdocs \ 303 \ levelupdate.php:289开始)

5 个答案:

答案 0 :(得分:4)

如果尚未向浏览器发送任何内容,则只能进行重定向。这意味着您必须执行以下两项操作之一:

  1. 如果您需要在发送任何数据之前重定向,请确定。

  2. 使用ob_start保留页面,直到完成处理。一旦您抛出header调用,它将转储缓冲副本并发送标头。但是你必须在开头调用ob_start,以便捕获任何输出。它的PHP页面应该为您提供一些线索。

  3. 我个人的偏好在于输出缓冲区(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)

您需要确保在标头声明后没有写入任何内容。

Detailed explanation

要修复,请退出;根据你的代码。