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