您现在的位置是:首页 > 教程 > ecshop商城教程ecshop商城教程

ecshop安装错误的解决方法

芷蕾2025-01-01 22:39:20ecshop商城教程已有人查阅

导读第一种解决方法是杀到cls_template.php文件中发现下面这段代码:忘记说了,我的PHP版本是5.4.19,PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递,所以这段代码中的explode就得移出来重新赋值了:

Strict Standards: Only variables should be passed by reference in F:\wamp\ \ecshop\upload\includes\cls_template.php on line 418
的报错信息。
第一种解决方法是杀到cls_template.php文件中发现下面这段代码:
$tag_sel = array_shift(explode(' ', $tag));
忘记说了,我的PHP版本是5.4.19,PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递,所以这段代码中的explode就得移出来重新赋值了:
$tagArr = explode(' ', $tag);
$tag_sel = array_shift($tagArr);
这样之后顶部的报错没掉了,左侧和底部的报错还需要去ecshop的后台点击清除缓存才能去除。
第二种解决方法就是去php.ini里面修改error_reporting,改成error_reporting=E_ALL & ~E_STRICT,这个意思是显示所有除了严格模式的错误。
改完了之后需要到 ecshop\upload\includes\init.php中,将第45行的:
@ini_set('display_errors', 1);
改成:
@ini_set('display_errors', 0);
这样ecshop\upload\includes\cls_template.php中的代码可以不用改,而且程序可以正确运行,缓存记得去后台清除下。
Strict Standards: Only variables should be passed by reference in D:\wamp\ecshop\includes\cls_template.php on line 406
第406行:
$tag_sel = array_shift(explode(' ', $tag));
解决办法 1
5.3以上版本的问题,应该也和配置有关 只要406行把这一句拆成两句就没有问题了
$tag_sel = array_shift(explode(' ', $tag));
改成:
$tag_arr = explode(' ', $tag);
$tag_sel = array_shift($tag_arr);
(实验过,绝对可行)
因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
解决办法 2 :
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
要清理下缓存,删除temp/caches下的文件夹就可以~
如果主机的GD库不存在或者版本不同还有可能出现下面这句错误提示:
Strict Standards: Non-static method cls_image::gd_version() should not be called statically in ****\includes\lib_base.php on line 346
直接找到“includes\lib_base.php”文件的346行左右,将这句:
//return cls_image::gd_version();
注释掉就可以了,当然,如果你的程序需要GD库支持,那就要咨询下服务器空间商了,这里我们YOOZHAN优站只作简要说明,不详述方法咯,本文所述ECSHOP版本为:ECShop_V2.7.3_UTF8_release1106,其它版本未测试,请自行研究啦。

本文标签:

很赞哦! ()

留言与评论 (共有 条评论)
验证码:

本栏推荐

相关标签