我非常希望看到PHP警告“不能修改标题信息”。为什么?因为这是明智的。你不应该能够发送标题后的身体。
但我可以!!如果我在控制器中调试了一些var,并且之后不立即进行exit,那么脚本就会重定向到下一页:一切都进行得很顺利,我无法看到我的var转储。
在PHP中,我可以在哪里配置(?)它没有缓冲输出?或者不管是什么让这种奇怪的行为!
澄清一下:I DO需要PHP警告,而i不希望重定向header('Location: ...')工作。
我确信在我以前的(本地)服务器(都是W)上,它确实抛出了输出/头警告.
编辑
为了说明这一点,我们使用了最基本的代码(我并不直接使用这些代码,但间接地使用了):
$form->validate($_POST);
var_dump($form->errors); // !!
if ( $form->noErrors ) {
header('Location: '.$form->redirectUrl);
exit;
}应答
@Heandel错误报告是一切(包括通知和反对等等)。但是,应该无关紧要:无论错误显示,发送标头都应该是不可能的。
@tandu我正在使用我自己的框架,但这也不重要。
@ceejayoz我的代码中没有一个ob_start。我不使用它。(模板ngin使用它,但模板不会在回发中触发。)
@Itay我不是一个共享主机。我在Windows SP2上本地使用PHP5.3.0 (WAMP)。在我的get服务器( VPS)上,这种情况不会发生:我收到了一个很好的PHP警告。
更新
谢谢加伦
来自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把它转过来,Off成功了。我不想要自动输出缓冲。谢谢!
发布于 2011-04-26 19:04:13
在php.ini文件中定位output_buffering并确保其设置为0
http://us.php.net/manual/en/outcontrol.configuration.php#ini.output-buffering
发布于 2011-04-26 19:04:36
将flush()放在var_dump之后
https://stackoverflow.com/questions/5795141
复制相似问题