首页 > 代码库 > ecshop 常见问题记录

ecshop 常见问题记录

今天在研究ecshop的时候遇到几个问题,现记录在下:

问题一:

1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\www\ecshop\install\includes\lib_installer.php on line 31
解决方法:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:

1)将function gd_version()改成static function gd_version()即可。

2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:

$p = new cls_image();
return $p->gd_version();


问题二:

安装完ECShop,打开首页的时候发现首页顶部、左侧和底部出现:


Strict Standards: Only variables should be passed by reference in F:\wamp\www\ecshop\upload\includes\cls_template.php on line 418的报错信息。

我的PHP版本是5.4.12,PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递,所以这段代码中的explode就得移出来重新赋值了:

找到cls_template.php文件中发现下面这段代码:
$tag_sel = array_shift(explode(‘‘,$tag));
修改为:
$tagArr = explode(‘‘,$tag);
$tag_sel = array_shift($tagArr);

这样之后顶部的报错没掉了,左侧和底部的报错还需要去ecshop的后台点击清除缓存才能去除。


问题三:

在安装检测环境的时候提示:是否支持 JPEG是不支持的。

解决:查看发现有libjpeg.lib库,GD2库也有,都加载了,也都正常。查看ecshop源代码发现install/includes/lib_installer.php中第100行,JPEG写成了JPG,正确的应该是:

$jpeg_enabled = ($gd_info[‘JPEG Support‘]        === true) ? $_LANG[‘support‘] : $_LANG[‘not_support‘];

为何说Ecshop写错了,因为我打印数组$gd_info的时候,里面的键名是:JPEG Support。而$gd_info数组里的值都是直接调用系统环境变量的。