discuz 网站遇到问题时,常常伴随着页面白屏或部分页面空白,php.ini 里面开启了错误提示也不显示具体错误信息,这是因为 discuz 压制了 PHP 的报错提示。
在核心文件
source/class/discuz/discuz_application.php 里有这样一段代码
🧑🚀🕶💶😆👆
关键代码 :
这个代码表示关闭所有 PHP 错误报告。
👁🥭✡🦖
那我们只要注释掉这段代码,然后开启 PHP 的报错提示,就可以找到页面空白的根本原因了。
🧠🚘🍇✔🐅注释掉:
全屏查看- if(empty($_config['security']['authkey'])) {
- $_config['security']['authkey'] = md5($_config['cookie']['cookiepre'].$_config['db'][1]['dbname']);
- }
👃🚤🫖©🐋- if(empty($_config['debug']) || !file_exists(libfile('function/debug'))) {
- define('DISCUZ_DEBUG', false);
- error_reporting(0);
- } elseif($_config['debug'] === 1 || $_config['debug'] === 2 || !empty($_REQUEST['debug']) && $_REQUEST['debug'] === $_config['debug']) {
- define('DISCUZ_DEBUG', true);
🦷🦼🎂♊🐂
- error_reporting(E_ERROR);
- if($_config['debug'] === 2) {
- error_reporting(E_ALL);
- }
- } else {
✋🚤🍞🈸🐮 - define('DISCUZ_DEBUG', false);
- error_reporting(0);
- }
复制代码
添加:
👍🚐🧊ℹ🐯- define('DISCUZ_DEBUG', true);
- error_reporting(7);
复制代码
解决问题之后,记得改回原来的代码。