关闭display_errors(PHP)时出现问题

时间:2010-12-27 08:59:58

标签: apache .htaccess php

我通过this method通过我的htaccess将display_errors设置为Off,当我运行phpinfo()时,它显示了这种方式(display_errors在Local Value和Master Value列中为Off)。另外,当我在测试脚本中echo ini_get('display_errors');时,我会返回0。

但是,当我在我的一个脚本中触发如下错误时:

trigger_error("An error", E_USER_WARNING);
但是,在运行此脚本而不是写入日志时,我不会收到错误:

$foo = array();
$bar = $foo['does_not_exist'];

我只想写入错误日志,而不是像它一样显示它。这是什么交易?

添加背景:我在Rackspace Cloud Site托管,他们不允许你编辑php ini,但你可以通过.htaccess中的php_flags设置基本上所有内容。< / p>

2 个答案:

答案 0 :(得分:0)

我的坏...意识到我在测试页面上没有使用的其中一个是display_errors动态设置为1的原因。上校Shrapnel写道是持怀疑态度(赞成他的评论)

答案 1 :(得分:-1)

首先,使用trigger_error()

验证ini_get('display_errors');之前是否真的关闭了display_errors

它可能会在运行时被覆盖。

然后,也许trigger_error()本身就是一个问题。尝试做一些通常会触发错误的事情。例如:

$foo = array();
$bar = $foo['does_not_exist'];

如果符合预期,那么这个问题肯定是trigger_error()

改为使用error_log()

http://us2.php.net/manual/en/function.error-log.php