我非常想看到PHP警告“无法修改标题信息”。为什么?因为这是明智的。你不应该在身体后发送标题。
但我可以!!如果我在控制器中调试一些变量并且之后不立即exit
,那么脚本只会重定向到下一页:所有变为'井'并且我无法看到我的var转储。
在PHP中我可以配置(?)它不缓冲输出?或者无论是什么导致这种奇怪的行为!
为了清楚起见:我 DO 想要PHP警告而我不要希望重定向header('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警告。
更新
谢谢盖伦
来自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
就可以了。我想要没有自动输出缓冲。谢谢!
答案 0 :(得分:5)
在php.ini文件中找到output_buffering
并确保将其设置为0
http://us.php.net/manual/en/outcontrol.configuration.php#ini.output-buffering
答案 1 :(得分:2)
将flush()
放在var_dump