我使用php创建了一个图表。该脚本在单独运行时工作正常,但是当我将其与其他代码一起使用时,而不是一些奇怪的字符显示的图形,错误是:
警告:无法修改标头信息 - 已在C:\ xampp \ htdocs \ samplesite \ Pets \ Dogs \ Afgan Hound中发送的标头(输出从C:\ xampp \ htdocs \ samplesite \ header.php:99开始)。第161行的PHP
header.php已包含在页面开头。
答案 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' />