编程语言
首页 > 编程语言> > php – 困惑的人寻求:“警告:无法修改标题信息”

php – 困惑的人寻求:“警告:无法修改标题信息”

作者:互联网

我非常想看到PHP警告“无法修改标题信息”.为什么?因为这是明智的.你不应该在身体后发送标题.

但是我可以!!如果我在一个控制器中调试一些变量并且之后不立即退出,那么脚本只会重定向到下一页:所有变为’井’并且我无法看到我的var转储.

在PHP中我可以配置(?)它不缓冲输出?或者无论是什么导致这种奇怪的行为!

为了清楚起见:我想要PHP警告,我不希望重定向标题(‘Location:…’)工作.

我非常肯定在我以前的(本地)服务器(两个W XP)它确实抛出输出/标题警告…

编辑
为了说明,使用最基本的代码(我不使用,但间接使用它):

$form->validate($_POST);
var_dump($form->errors); // !!
if ( $form->noErrors ) {
  header('Location: '.$form->redirectUrl);
  exit;
}

答案
@Heandel错误报告就是一切(包括通知和弃用等).无论如何:无论错误显示如何都不可能发送标题.

@tandu我正在使用my own framework,但这也无关紧要.

@ceejayoz我的代码中没有一个ob_start.我不使用它. (模板ngin使用它,但模板不会在回发中触发.)

@Itay Moav我不在共享主机中.我在Windows XP SP2上本地使用PHP 5.3.0(WAMP).在我的网络服务器(VPS)上,这不会发生:我得到了一个很好的PHP警告.

UPDATE
谢谢盖伦

来自php.ini:

; Note: Output buffering can also be controlled via Output Buffering Control
;   functions.
; Possible Values:
;   On = Enabled and buffer is unlimited. (Use with caution)
;   Off = Disabled
;   Integer = Enables the buffer and sets its maximum size in bytes.
; Note: This directive is hardcoded to Off for the CLI SAPI
; Default Value: Off
; Development Value: 4096
; Production Value: 4096
; http://php.net/output-buffering
output_buffering = On

关掉它就可以了.我想要没有自动输出缓冲.谢谢!

解决方法:

在php.ini文件中找到output_buffering并确保它设置为0

http://us.php.net/manual/en/outcontrol.configuration.php#ini.output-buffering

标签:output-buffering,php,header
来源: https://codeday.me/bug/20190730/1578732.html