警告的头信息在我的测试服务器,但不是在本地,为什么?

我有我的网站活在我呼应弦数进行检测,因此它显示我的测试字符串,但随着警告消息

警告:无法修改标题信息 - 通过在线50头已经发出(输出开始/home/companyfolder/public_html/mycart.php:117)在/home/companyfolder/public_html/includes/functions/general.php

但在同一时间,我没有得到这个错误任何地方在我的本地机器上,所以我想知道是否有相关的服务器的标题信息显示有什么区别?

--------------解决方案-------------

因为输出缓冲

而不是一个单一的,谁自愿分享他们有关错误处理的知识,提到了一种更可能的原因 - display_errors设置关掉,因为它在直播现场应该是。

当然应该。 至

  • 不是吓唬用户莫名其妙的信息
  • 不要透露你的应用程序可能攻击者的重要信息。 也没有任何反馈信息提供给他们。
  • 通知所有错误的程序员发生,通过将log_errors设置上

因此,在开发网站

display_errors = on
log_errors = off

上线的站点

display_errors = off
log_errors = on

错误报告级别应该保持不变- E_ALL或更好

你必须在这两个地方,只是不同的错误报告级别相同的问题。 您可以使用error_reporting此配置在php.ini文件中或者在运行时()

这个错误是相当普遍的,但基本上所发生的事情是什么,它​​说。 你包括mycart.php在一个页面,像117就开始输出HTML(或其它客户端),一旦这种情况发生开始,你可以不修改任何的头信息(例如,重定向)。 像杰森虽然说,错误是没有出现的原因是使用error_reporting设置。

编辑:您可以通过使用ob_start()函数和解决这些问题,那么ob_end_flush()函数你做你的头部修正后。

您的其他服务器的配置可能有output buffering在php.ini文件中开启。

服务器在php.ini中有这样

error_reporting(E_ALL);

如果你只是想错误,然后使用

error_reporting(E_ERROR | E_PARSE);

分类:php 时间:2012-01-01 人气:3
本文关键词: PHP
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.439 (s). 9 q(s)