wecenter 问题记录1

huanghunjzl
huanghunjzl 这家伙很懒,还没有设置简介

0 人点赞了该文章 · 3491 浏览

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 10:29

免责声明:

本文由 huanghunjzl 原创发布于 WeCenter ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

huanghunjzl
2015-03-30 11:05
那不能因为量太大就省去了这事情吧,一味屏蔽错误,不是解决问题的方法。
jat
2015-03-30 11:00
不加 isset 或 empty 是历史遗留问题,一个个加量太大,自己改下 error_reporting 就行。 https 的判断没有问题,出现报错的原因还是没加 isset 或 empty。