一、

Strict Standards: Only variables should be passed by reference in D:\tiandiyoyo\hengtian\ecshop\upload\includes\cls_template.php on line 424

不淡定了,打开cls_template.php,定位到424行,发现下面内容:

 代码如下复制代码

$tag_sel = array_shift(explode(' ', $tag));

将其注释掉,分别拆开,添加两行


 代码如下复制代码

$tag_tmp = (explode(' ', $tag));
$tag_sel = array_shift($tag_tmp);
//$tag_sel = array_shift(explode(' ', $tag));

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

二、

客户在安装完模版之后出现includes\lib_main.php on line 1329,仔细检查过后得知php版本是5.3以上的,这样的问题真是不少,如何解决这样的问题,ecshop开发中心给出教程

php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 
$ext = end(explode('.', $tmp));
改为 :
$extsub=explode('.', $tmp);$tmp=end($extsub);

三、

Strict Standards: Redefining already defined constructor for class后面加路径。
经过小编研究是因为ECSHOP模板架设的服务器php虚拟主机版本过高而发送报错。  PHP 类,有两种构造函数,一种是跟类同名的函数,一种是 ____construct()。从PHP5.4开始,对这两个函数出现的顺序做了最严格的定义,必须是 ____construct() 在前,同名函数在后
那这个问题要怎解决呢?
下面以这个报错为例
Strict Standards: Redefining already defined constructor for class alipay in /data/web/includes/modules/payment/alipay.php on line 85
找到文件alipay.php
使用编辑器打开,找到下面的构造函数

1        function __construct()    

2        {    

3            $this->alipay();    

4        }    

放到

1        function alipay()    

2        {    

3        }    

前面。