wecenter 问题记录1
1.不知道在哪里屏蔽的错误代码,我也懒得找,导致无法显示apache错误,排查起来非常困难
解决方法,在插件的main.php 最前面加上一下代码,例1:
ini_set('display_errors',1); //错误信息 ini_set('display_startup_errors',1); //php启动错误信息 error_reporting(-1);2.第二个问题就是,开了错误显示之后才能发现的,一堆 notice信息, 解决方法,在有提示的地方加个isset判定一下,我不知道你们是不故意不加的,难不成加个isset会增加服务器压力? 例2:
//Notice: Undefined index: main in \wecenter\system\core\lang.php on line 58 if ($this->lang[trim($string)]) { do something; } //改为下面这个样子,或者把$traslate 放在外面, if ($translate = isset($this->lang[trim($string)])?$this->lang[trim($string)]:false) { do something; } /* Notice: Undefined index: HTTPS in \wecenter\system\functions.inc.php on line 36 这里有个HTTPS的判定,出现频率挺高的。 $_SERVER['HTTPS'],我这里返回的是NULL,不是off,PHP.NET官方文档的解释是: Note: 注意当使用 IIS 上的 ISAPI 方式时,如果不是通过 HTTPS 协议被访问,这个值将为 off。 貌似只有IIS下才会有off? */ $scheme = ($_SERVER['HTTPS'] AND !in_array(strtolower($_SERVER['HTTPS']), array('off', 'no'))) ? 'https' : 'http'; //改: $scheme=isset($_SERVER['HTTPS'])?((strtolower($_SERVER['HTTPS'])=='off')?'http':'https'):'http'; // \wecenter\system\core\plugins.php line 148 改为 @$this->plugins_table[$app][$controller][$action]类似的问题太多鸟。。。惨不忍睹。希望官方代码写的严谨一些。
2015-03-30 11:05
2015-03-30 11:00