2014-05-20 16:19

让Discuz显示错误信息

通常情况下,Discuz会自动将PHP自带的报错功能屏蔽掉,使得在实际开发中,看不到发生在程序上的语法错误。
比如:

echo 1

这行代码在结尾少了个分号,通常PHP会发出一个语法错误的提示,但是在Discuz中却直接显示空白页面,没有错误提示。

解决的方法:
1.config/config_global.php文件中添加一行代码:

$_config['debug'] = 1; 
//1表示只显示严重错误类型的信息(如上述的每行代码结尾缺少分号)
//2表示显示所有类型错误,包含警告,Notice等

2.source/function目录下添加一个名为function_debug.php的空文件

3.在url后面添加上debug=1
例如:当前url为 http://localpath/forum.php
改为: http://localpath/forum.php?debug=1
注意:如果这一步没有做的话,错误信息同样没有显示,遇到错误页面还是一片空白
系统对于这个问题的处理实现可以查看source/class/discuz/discuz_application.php中的_init_config中的实现

你可能还喜欢...

  1. 针对X3的无效哎……调试插件依然空白,得,还是人工注意点细节好了

    1. 我这X3.1有效。

      1. 谢谢回复,我读了source/class/discuz/discuz_application.php中的_init_config部分,再次测试后,发现$_config['debug'] = 2;的时候,php没有分号这类错误才会显示,但是连同Notice这些也显示了。如果用$_config['debug'] = 1;则不会显示任何错误直接空白,语法解析错误看来不属于E_ERROR的范畴~是我没有测试周全,改成2就可以解决问题了~

  2. 非常感谢分享~正好遇到这个问题了。虽然不看报错自己排查也解决了,但是有报错更便捷。

添加新评论