ecshop在PHP 5.4以上版本各种错误问题处理

1、PHP 5.4.X环境下安装ECShop出现“includes/cls_template.php on line 406”的解决方案。
将 $tag_sel = array_shift(explode(‘ ‘, $tag)); 这句话拆开为两句。
$tag_arr = explode(‘ ‘, $tag);
$tag_sel = array_shift($tag_arr);
array_shift() 的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值 end(&array) 也一样(后面也会有end的函数,也需要拆分为两行)。
2、PHP 5.4.X环境下安装ECShop出现“includes/lib_base.php on line 346”的解决方案。
将 cls_image.php 中 function gd_version() 改成 static function gd_version() 即可。
3、后台点击 开店向导 警告的解决方案。
admin/include/modules/payment 下的几个文件构造函数错误,删掉即可。
4、php5.4下安装的时候处理问题,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,所以会出错。这时候只要:
将function gd_version()改成static function gd_version()即可。
5、安装好后出现 Strict standards: Only variables should be passed by reference in \includes\lib_main.php on line 1329
$ext = end(explode('.', $tmp));
修改为:
$ext = explode('.',$tmp);
$ext = end($ext);
6、Strict standards: Only variables should be passed by reference in \includes\cls_template.php on line 418
tag_sel = array_shift(explode(' ', $tag));
修改为:
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
7、ECSHOP后台“商店设置”报错 Strict Standards: mktime(): You should be using the time() function instead in /www/web/zhuli/public_html/admin/sms_url.php on line 31。
php版本问题  mktime()修改为  time()
8、 ECSHOP后台“商店设置”报错 Strict Standards: mktime(): You should be using the time() function instead in /www/web/zhuli/public_html/admin/shop_config.php on line 32。
php版本问题  mktime()修改为  time()

3 安装好后出现 Strict standards: Only variables should be passed by reference in \includes\lib_main.php on line 1329
$ext = end(explode('.', $tmp));
修改为:
$ext = explode('.',$tmp);
 $ext = end($ext);
 Strict standards: Only variables should be passed by reference in \includes\cls_template.php on line 418
 tag_sel = array_shift(explode(' ', $tag));
修改为:
 $tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
 
array_shift() 的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值 end(&array) 也一样(后面也会有end的函数,也需要拆分为两行)。
 
修改后到后台更新缓存
 
4 后台 Strict standards: Redefining already defined constructor for class alipay in \includes\modules\payment\alipay.php on line 85
 后台更新缓存
 
5 Strict standards: mktime(): You should be using the time() function instead in \admin\sms_url.php on line 31
php版本问题  mktime()修改为  time()
 
6 Strict standards: Redefining already defined constructor for class alipay in \includes\modules\payment\alipay.php on line 85Call Stack
这里是php4与php5的区别
PHP4中构造方法是一个与类同名的方法,而从PHP5开始,用__construct()做为构造方法,但仍然支持PHP4的构造方法。如果同时使用的话,如果 同名方法在前的话,则会报错

只需要把 function __construct()移到同名函数之前

 7 Deprecated: Assigning the return value of new by reference is deprecated in  \admin\sitemap.php on line 46

 $sm     =& new google_sitemap();

     在5.3版本之后已经不允许在程序中使用”=&”符号。如果你的网站出现了Deprecated: Assigning the return value of new by reference is deprecated in 错误,别着急,先定位到出错的文件,查找下是不是在程序中使用了”=&”,例如阿兹猫刚才定位到网站程序中发现了下图的程序,发现使用了”=&”符号,去掉‘&’符号之后程序运行正常。
 
8  PHPStrict Standards: Declaration of ucenter::login() should be compatible with integrate::login($username, $password, $remember = NULL) in \includes\modules\integrates\ucenter.php on line 52 PHP Strict Standards: Declaration of ucenter::add_user() should be compatible with integrate::add_user($username, $password, $email, $gender = -1, $bday = 0, $reg_date = 0, $md5password = '') in \includes\modules\integrates\ucenter.php on line 52 PHP Strict Standards: Declaration of ucenter::set_cookie() should be compatible with integrate::set_cookie($username = '', $remember = NULL) in \includes\modules\integrates\ucenter.php on line 52
 
PHP5.4,子类的方法名如果和父类方法名相同,则子类的参数列表也要和父类的参数列相同。
修改接口文件里面的方法
 
9  ecshop2.7.3 gbk版在php5.4下安装后,分类名称文字不显示问题
htmlspecialchars()从 php5.4.0 版本开始第三个参数字符串编码的默认值改成了 UTF-8,而ecshop2.7.3 gbk版的中文编码是 GB2312 编码的,跟现在的默认参数不一致,导致所有htmlspecialchars()处理的字符都无法显示。
解决办法:
$str_converted = htmlspecialchars($str, ENT_COMPAT ,'GB2312');
建议php5.4下不要安装gbk编码ecshop。

时间: 2024-08-03 05:52:14

ecshop在PHP 5.4以上版本各种错误问题处理的相关文章

插件-ecshop多城市多仓库最后版本

问题描述 ecshop多城市多仓库最后版本 5C 我现在急用ecshop多城市多仓库最后版本.有的急联系我,谢谢大家了. 解决方案 http://www.ecmoban.com/goods.php?id=466

sdk-xcode4.6.2版本编译错误

问题描述 xcode4.6.2版本编译错误 我刚刚更新到 Xcode 版本 4.6.2 (4H10003).然后想将一个以前运行的工程在模拟器中跑一下.结果系统报出了编译错误: PCH file built from a different branch ((clang-425.0.27)) than the compiler ((clang-425.0.28)) 不知道怎么搞的. 解决方案 clean一下工程 然后在 window -- organizer中删除一下运来的编译结果 试试

ECSHOP在PHP5.5及高版本上报错的解决方法_php实例

Ecshop却没来得及修改,如果在高版本的php虚拟主机上安装ecshop程序,出现兼容性问题. 小编在本地环境php5.5上安装出现以下两种报错提示: Only variables should be passed by reference php Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead-? 通过在网络上查找,小编发现并不是只能在低版本的php中安装

java中的不支持类版本的错误

问题描述 详细错误在下面的这张图片中,求各位好人指点一下这错误应当如何处理,数据库连接使用的是hibernate.cfg.xml进行的连接 框架是使用的S2SH,求指教 解决方案 这个问题很好解决的,右键工程,选择properties,然后在左边选项中选择java compiler,修改编译器版本为1.6或者6.0的就可以了解决方案二:jdk版本不对,换个版本

安装Win10 Mobile预览版14977版本出现错误8007007B的解决办法

微软表示,如果你在安装最新的Windows 10 Mobile预览版14977时遇到错误8007007B,你必须等到下一次推送. 经过几个星期的等待,微软现在为移动设备发布新的测试预览版.这一次,该公司正在向快速通道Insider成员推动Windows 10 Mobile预览版14977,并进行了一系列改进和更改,而且Microsoft Edge在移动设备上支持epub文件格式.但是,某些手机可能会收到错误8007007B,这会导致手机无法安装今天的更新.微软社区论坛有一个专门的帖子,这是更新之

Ecshop提示Only variables should be passed by reference in错误

Ecshop是个坑爹货,为什么tiandi会说它是个坑爹货呢,请看一下下面的官方的运行环境推荐: 服务器端运行环境推荐 ·php版本5.0以上5.3以下的版本(推荐使用5.2系列版本) ·Mysql版本5.0及以上 ·空间安装zend ·空间支持文件锁功能 ·开启GD功能 ·Mysql函数支持mbstring.iconv.fsockopen 看见了吧,PHP5.3以下的版本,还推荐使用5.2的,尼妹的,现在哪个虚拟机还敢用5.3以下的版本?还在用5.3以下的版本?看看tiandi用的2两个主机,

qt-CMake 构建Qt项目,出现无法找到合适的Qt版本

问题描述 CMake 构建Qt项目,出现无法找到合适的Qt版本 途中错误如何解决,求大神给出解决方案!尽量详细些,初学CMake.谢谢了! 解决方案 你去QT官网下载对应的版本,它都自带Cmake等

几个流行免费建站系统简单分析

中介交易 SEO诊断 淘宝客 云主机 技术大厅 我从2008年开始接触建站,想当一名站长.一开始买了些html的书来学习,并找了一个做站的哥们教了我一些基础的东西.如何购买并设置域名和服务器,然后当时他推荐了Discuz给我,并教我如何用FTP把文件上传到自己的空间里,最终建立好网站.回来以后努力琢磨了几天,买了域名服务器,下载安装好了Discuz,做了个失败的网站最后关了. 直到今年突然又想开始做网站了,在有之前的经验过后,我就开始找找其他的建站系统.不找不知道,现在的免费建站系统又多又丰富.

.Net整合其他平台的一些探讨

整合分布式应用程序经常是一件非常困难并且错综复杂的任务,即使是最富有经验的开发者也可能会觉得头疼.当应用程序在不同的操作系统以及涉及不同的程序平台时,这个集成问题变得尤其复杂.虽然说,Web服务承诺可以减轻程序员完成集成任务的困难程度,但是也可能给程序员们带来一些意想不到的麻烦.在这里我们将把一个ASP.net应用程序和一个PHP Web服务连结起来,以学习一些整合分布式应用程序的方法,以及必要的应对措施,包括运行什么以及不用去做什么. 这个Web服务在一个Apache服务器上运行,并且使用PH