图表未正确显示

时间:2011-08-20 02:13:26

标签: php

我使用php创建了一个图表。该脚本在单独运行时工作正常,但是当我将其与其他代码一起使用时,而不是一些奇怪的字符显示的图形,错误是:

  

警告:无法修改标头信息 - 已在C:\ xampp \ htdocs \ samplesite \ Pets \ Dogs \ Afgan Hound中发送的标头(输出从C:\ xampp \ htdocs \ samplesite \ header.php:99开始)。第161行的PHP

header.php已包含在页面开头。

1 个答案:

答案 0 :(得分:0)

您的header.php脚本会在主脚本中调用标头之前发送一些输出,甚至可能只是空格。如果您的AfganHound.php脚本尝试通过setcookie()存储Cookie,或者在session_start()被包含后调用header.php,则操作将因您收到错误而失败。

如果header.php产生输出(并且我们怀疑它确实存在),则必须在主脚本设置Cookie或调用session_start()

之后包含

根据评论,主脚本调用header("Content-type:image/png");输出图像。

这是问题的根源。您无法在同一脚本执行中输出HTML和图像。您的HTML页面(包含header.php创建的菜单的页面应包含<img>标记,该标记将图形脚本称为其src属性。当浏览器加载HTML页面并请求此{ {1}},而不是提供静态png图像,它调用生成图形的PHP脚本并将其作为图像传回浏览器。浏览器不知道它调用了PHP脚本,只是对它进行处理像任何其他图像一样。

<img>

然后图形生成脚本不得产生任何输出,除了图像数据(没有HTML)及其相关标题:

<img src='/path/to/graph_generator_script.php' alt='what the image contains' />