ecshop安装问题总结

今天安装个ecshop2.7.2,除了这个版本有漏洞可以复现外,主要还是想测试下cheetah这个工具,但是发现ecshop安装真烦心,挺多问题的,就挂篇问题总结。一般PHP 5.3版本以上会出现比较多的错误。

新浪微博同步:http://blog.sina.com.cn/laomacanhu

1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in  ..\..\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();

2.检测环境的时候提示:是否支持 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'];
打印数组$gd_info的时候,里面的键名是:JPEG Support。而$gd_info数组里的值都是直接调用系统环境变量的。

3.默认时区问题:Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in ..\..\ecshop\install\includes\lib_installer.php on line 225


(1)将php.ini里是date.timezone前的";"去掉,改成:date.timezone = PRC;

(2)或者在首句写入 ini_set('date.timezone','Asia/Shanghai');

(3)或者在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s');

4. ecshop的时候最上面出现了一个错误提示:Strict Standards: Only variables should be passed by reference in ..\cls_template.php on line 418

        打开cls_template.php文件中发现下面这段代码:$tag_sel = array_shift(explode(' ', $tag));PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递,explode就得重新赋值,替换成下列代码:

$tagArr = explode(' ', $tag);
        $tag_sel = array_shift($tagArr);
        原先的报错就消失,但是返回upload左侧和底部还有报错,还需要去ecshop的后台点击清除缓存,重新载入才能去除。

 

5. ECShop安装之后,在后台发现一个错误提示:
        Strict Standards: mktime(): You should be using the time() function instead in ..\..\admin\shop_config.php on line 32

        这个错误提示的意思:mktime()方法不带参数被调用时,会被抛出一个报错提示。
        找到文件第32行:$auth = mktime();
        将mktime()替换成time()方法,代码为:$auth = time();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值