PHP遇到错误时,就会给出出错
脚本的位置、行数和原因,例如:
Notice: Use of undefined constant test - assumed ''test'' in D:interpubbigflytest.php on line 3
有很多人说,这并没有什么大不了。但泄露了实际路径的后果是不堪设想的,对于某些入侵者,这个信息可是非常重要,而事实上现在有很多的服务器都存在这个问题。
有些网管干脆把PHP配置文件中的display_errors设置为Off来解决,但本人认为这个方法过于消极。有些时候,我们的确需要PHP返回错误的信息以便调试,而且在出错时也可能需要给用户一个交待,甚至导航到另一页面。
PHP从4.1.0开始提供了自定义错误处理句柄的功能函数set_error_handler(),但很少数脚本编写者知道。在众多的PHP论坛中,我只看见很少一部分对此情况进行了处理。set_error_handler的使用方法如下:
string set_error_handler ( callback error_handler [, int error_types])
http://www.w3school.com.cn/php/func_error_set_error_handler.asp 官方是否添加这个功能,让管理员状态下可以显示错误的信息,而普通网民无法看到这些信息,只显示类似“处理 URL 时服务器出错”字样