ecshop在在PHP5.6.6版本以后,有了很多细微的变化。而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百出。

整理一下我遇到的问题希望对你们能有些帮组也为了自己以后查看。

问题1:

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in cls_template.php XXX line

出错原因:

出现以上问题是 preg_replace() 函数中用到的修饰符 /e 在 PHP5.5.x 中已经被弃用了。在PHP 5.5以上的版本用 preg_replace_callback 函数替换了 preg_replace函数。

解决方法:

 解决问题的方法就是将代码中使用 preg_replace 函数的部分全部替换成 preg_replace_callback 函数,并且将一被废弃的 /e 修饰符 删除。

例子:

return preg_replace("/{([^\}\{\n]*)}/e", "\$this->sel ect('\\1');", $source);

替换为

return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->sel ect($r[1]); }, $source);

问题2:

Strict Standards: Only variables should be passed by reference in ......\includes\cls_template.php on line 418

出错原因:

出现这个问题的原因,貌似在php5.4中array_shift只能为变量,不能是函数返回值。

解决方法:

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

替换成

$tag_arr = explode(‘ ‘, $tag);

   $tag_sel = array_shift($tag_arr);

问题3:

Strict Standards: Non-static method cls_image::gd_version() should
not be called statically in ......\includes\lib_base.php on line 346  
或者

Strict Standards: Non-static method cls_image::gd_version() should
not be called statically in ......\includes\lib_installer.php on line 31

出错原因:  //www.zuimoban.com

如问题中提示的一样,因为 cls_image.php 中 gd_version() 不是 static 函数所以在lib_base.php 与 lib_installer.php 中调用时才会出现以上问题。

解决方法:

  解决方法1:    首先在 lib_image.php 文件中,用 Shift+F 去搜索 gd_version 函数。然后在gd_version 方法前加 static 修饰符,是此函数变成静态函数。

解决方法2:    在lib_base.php 与 lib_installer.php 函数中找到
cls_image::gd_version() 部分, 然后分别创建cls_image 实例,之后用创建的实例再去调用 gd_version()
函数。

$cls_gile = new cls_image();

return $cls_gile->gd_version();

问题4:

Deprecated: Assigning the return value of new by reference is deprecated in…

出错原因:

PHP5.3+废除了”=&”符号,对象复制用”=”

解决方法:

搜索所有PHP文件,将”=&”替换为”=”

问题5:

Strict Standards: mktime(): You should be using the time() function instead in ......\admin\shop_config.php on line 32

出错原因:

这个错误提示的意思:mktime()方法不带参数被调用时,会被抛出一个报错提示。

解决方法:

$auth = mktime();

将mktime()替换成time()方法,代码为:

$auth = time();

问题6:

Strict Standards: Redefining already defined constructor for class cls_sql_dump ......

出错原因:

原因跟PHP类中的构造函数有关,PHP早期版本是使用跟类同名的函数作为构造函数,后来又出现了使用 __construct()作为构造函数,

这俩个函数可以同时存在。到了PHP5.4版本,对这俩个函数在代码中的先后顺序有了严格的要求。在PHP5.4版本下,必须__construct() 在前,

同名函数在后,否则就会出现上面的的错误提示。

解决方法:

把__construct()函数放在,同名函数上面就行了。

问题7:

Strict Standards: Declaration of vbb::set_cookie() should be
compatible with integrate::set_cookie($username = '', $remember = NULL)

出错问题:

vbb继承了integrate类并且重写了 set_cookie() 函数,但vbb重写set_cookie函数的参数 与 其父类set_cookie 的参数不符所以出现以上问题。

解决方法:

function set_cookie ($username="")

   改为

   function set_cookie ($username="", $remember = NULL)

如出现类似错误,可以以同样的方法解决。

PHP5.6.6上运行 ecshop 2.7.3常见问题处理的更多相关文章

  1. PHP 5.6.6 上运行 ecshop 2.7.3 不兼容问题整合

    在安装完php在自己的服务器上以后, 发现在静态网页上出现了很多 error. 在网上查找过后发现,大部分问题是因为 PHP发展到PHP5.5版本以后,有了很多细微的变化.而ECSHOP官方更新又太慢 ...

  2. 在PHP5.3以上版本运行ecshop出现的问题及解决方案

     ecshop 问题一:商城首页报错 Strict Standards: Only variables should be passed by reference in D:\wamp\ecshop\ ...

  3. 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案

    ecshop 问题一:商城首页报错 Strict Standards: Only variables should be passed by reference in D:\wamp\ecshop\i ...

  4. PHP7和PHP5在安全上的区别[更新]

    0X01 前言 本篇文章大多为转载,但是修正了一些不正确的说法,对某些功能点的变更指出具体是哪个版本变更,加入了一些小更新. (原文地址:https://www.freebuf.com/article ...

  5. 在传统.NET Framework 上运行ASP.NET Core项目

    新的项目我们想用ASP.NET Core来开发,但是苦于我们历史的遗产很多,比如<使用 JavaScriptService 在.NET Core 里实现DES加密算法>,我们要估计等到.N ...

  6. Hyper-V上运行的Linux虚拟机验证是否安装了集成服务

    Hyper-V上运行的Linux虚拟机验证是否安装了集成服务 ps aux|grep "hv"root       311  0.0  0.0      0     0 ?     ...

  7. 通过Mono 在 Heroku 上运行 .NET 应用

    英文原文:Running .NET on Heroku 中文原文:在 Heroku 上运行 .NET 应用 自从加入了Heroku之后,我就想在这个平台上运行.NET程序.现在我很高兴向大家宣布,我们 ...

  8. Linux上运行NET

    今天尝试了下Ubuntu上运行NET程序,按照 https://github.com/aspnet/Home 的指引,一步一步来: 1.安装DNVM(原名KVM) Linux控制台下输入 curl - ...

  9. Mono 4.0 Mac上运行asp.net mvc 5.2.3

    Mono 4.0 已经发布,二进制包已经准备好,具体的发布说明参见:http://www.mono-project.com/docs/about-mono/releases/4.0.0/. 今天在Ma ...

随机推荐

  1. 【Azure 事件中心】在Service Bus Explorer工具种查看到EventHub数据在分区中的各种属性问题

    问题描述 通过Service Bus Explorer工具,查看到Event Hub的属性值,从而产生的问题及讨论: Size in Bytes:   这个是表示当前分区可以存储的最大字节数吗? La ...

  2. Ubuntu18.04 LTS x64 构建ARM交叉编译环境(尝试,但失败了!!!估计是编译器没选对)

    [测试而已,由于需要了解编译器和处理器体系,因此先放弃该方法] 动机 入门嵌入式开发,又需要 Windows 又需要 Linux,但资料给的竟然是 Ubuntu9,导致我不能使用 VSCode Rem ...

  3. 双向链表(DoubleLinkList)

    双向链表 有关链表的知识可以点击我上篇文章这里就不再赘述LinkedList 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个 ...

  4. 14、iptables_nat源地址转换(内网共享上网)

    14.1.环境说明: 1.架构图:

  5. 暑假自学java第十二天

    1, 创建String 字符串 Java 中的字符串是一连串的字符,与其他计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理.将字符串作为内置的对象处理,允许Jav ...

  6. Acunetix敏感的数据泄露–泄露如何发生

    术语"敏感数据暴露"是指允许未授权方访问存储或传输的敏感信息,例如信用卡号或密码.全球范围内大多数重大安全漏洞都会导致某种敏感的数据泄露. Acunetix利用攻击漏洞(例如Web ...

  7. idea本地调式tomcat源码

    前言 上篇文章中一直没搞定的tomcat源码调试终于搞明白了,p神的代码审计星球里竟然有,真的好b( ̄▽ ̄)d ,写一下过程,还有p神没提到的小坑 准备阶段 1.去官网下东西:https://tomc ...

  8. Python获取list中指定元素的索引

    在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等.怎么办?看下面 方法一: 利用数组自身的特性 list.index(target), 其中a ...

  9. 「AGC034E」 Complete Compress

    「AGC034E」 Complete Compress 显然可以枚举根. 然后把某两棵棋子同时往深度浅的方向提,即对不存在祖先关系的两个棋子进行操作. 如果能到达那么就更新答案. 问题转化为如何判定能 ...

  10. 路由算法(Dijkstra算法以及遗传算法)

    (1)Dijkstra算法 1 class Dijkstra(Algorithm): 2 """Dijkstra algorithm for unicast route ...