我在localhost上工作。我有PHP 5.4.4。我刚刚在php.net上看到,自5.4版开始,E_STRICT成为了E_ALL的一部分。
所以,我在php.ini文件中看到了这个。
error_reporting = E_ALL
所以,我认为,这是最严格的错误报告模式。所以,我故意弄错了,看看是否有效。
我设置$ _SESSION键以在我的代码中以数值开头。没有报告错误。该程序运行不正确。
我还设置了:display_errors = On
因此,我假设在运行脚本时,我的浏览器中会报告任何错误。但是,没有任何反应。
其中一位研究员,Stackoverflow.com会员,正在检查我的代码并发现错误,因为他的浏览器报告了错误。但是,我的一切都没有发生。
答案 0 :(得分:2)
您可能已将PHP配置为不将错误输出到屏幕,而是将其记录到日志文件中。
即,display_errors设置为false
,log_errors设置为true
。
这是生产网站的常见配置,不会将错误回显到屏幕(可能会泄露攻击者的重要信息),而是将其写入Web服务器日志。
答案 1 :(得分:0)
我建议您安装一个全局错误处理程序,并在那里进行一些格式化,以获得一个不错的结果:
set_error_handler( 'error_handler' );
function error_handler( $errno, $errmsg, $filename, $linenum, $vars )
{
// error was suppressed with the @-operator
if ( 0 === error_reporting() )
return false;
printf( "Unrecoverable error in `%s' line %s: %s\n\n", $filename, $linenum, $errmsg );
exit( $errno );
}
答案 2 :(得分:0)
问题有点难以跟踪。如果要查看显示错误的实际错误消息,则必须牢记以下几点:
display_errors
directive只有在可以输出的显示内容时才有效。
通常,当您的脚本已经完成并且没有任何关联输出时,会话将保存在磁盘上。
因此,您无法使用该设置显示以下注意事项:
注意:未知:在第0行的“未知”中跳过数字键0
第0行的中的 表示这不是正常的PHP代码。就在PHP引擎关闭并保存会话数据时。
因此,您永远不会将此错误消息添加到您的显示上,除非:
session_write_close()
编写会话:注意:session_write_close():在第12行的...中跳过数字键0
希望这有助于并完全澄清它。