ECSHOP错误Redefining already defined constructor for class如何解决

本地PHP环境PHP5.4,安装ecshop2.7.3后,很多地方会报如下的错

Redefining already defined constructor for class XXX

使用和类名相同点函数名作为构造函数是php4时代的写法,php5时代的构造函数是 __construct(),ecshop为了兼容老版本的php,所以采用了上面的写法。

但是从php5.4开始,对于这样的两种写法同时出现的情况,要求必须__construct()在前,同名函数在后,所以只需要对调两个函数的位置即可。

解决方案:打开ecshop目录下includes/cls_captcha.php,并执行下面操作。

把代码1 放到代码2后面就解决错误了

代码1:

 1 /**
 2     * 构造函数
 3     *
 4     * @access  public
 5     * @param   string  $folder     背景图片所在目录
 6     * @param   integer $width      图片宽度
 7     * @param   integer $height     图片高度
 8     * @return  bool
 9     */
10    function captcha($folder = ‘‘, $width = 145, $height = 20)
11    {
12        if (!empty($folder))
13        {
14            $this->folder = $folder;
15        }
16
17        $this->width    = $width;
18        $this->height   = $height;
19
20        /* 检查是否支持 GD */
21        if (PHP_VERSION >= ‘4.3‘)
22        {
23
24            return (function_exists(‘imagecreatetruecolor‘) || function_exists(‘imagecreate‘));
25        }
26        else
27        {
28
29            return (((imagetypes() & IMG_GIF) > 0) || ((imagetypes() & IMG_JPG)) > 0 );
30        }
31    }

代码2:

 1 /**
 2  * 构造函数
 3  *
 4  * @access  public
 5  * @param
 6  *
 7  * @return void
 8  */
 9 function __construct($folder = ‘‘, $width = 145, $height = 20)
10 {
11     $this->captcha($folder, $width, $height);
12 }

ECSHOP错误Redefining already defined constructor for class如何解决

时间: 2024-08-01 10:44:57

ECSHOP错误Redefining already defined constructor for class如何解决的相关文章

ecshop:Redefining already defined constructor for class captcha

提示 ( ! ) Strict standards: Redefining already defined constructor for class captcha in C:\develop\wamp\www\ecshop\includes\cls_captcha.php on line 119 解决方法,参考:ecshop错误提示:Strict standards: Redefining already defined constructor for class captcha

Atitit.404错误解决标准流程and url汉字中文路径404错误resin4 resin chinese char path 404 err解决

Atitit.404错误解决标准流程and url汉字中文路径404错误resin4 resin chinese char path 404 err解决 1. #原因解析 1 2. #解决方式 2 3. 输出图片流... 2 4. --code 2 5. 参考 3 1. #原因解析 查看累挂发送d url,,,俄使用的是ff..它把url转换成个 http://localhost/img/QQ%E6%88%AA%E5%9B%BE20140401175433.jpg 发送出去..每汉字3个%字符,

【初学python】错误SSLError: [Errno 1] _ssl.c:504:的解决记录

最近在实习公司学习使用python做web自动化测试,其中使用到httplib这个模板,主要用于与待测试界面建立HTTP连接,发送数据请求,接收请求状态码和查询数据,验证功能.但是新版本的web界面改成使用https协议,原来的测试用例都变成无法跑通的状态. 将协议从HTTP改成HTTPS后,报以下错误: SSLError: [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown proto

关于错误Access Violation和too many consecutive exceptions 解决方法

关于错误Access Violation和too many consecutive exceptions 解决方法 “如果DLL中用到了DELPHI的string类型,则DLL和主程序中都需要加上ShareMem”.DLL项目加ShareMem这个我知道,但主程序中也要加?这我就不明白了,为什么以前不加的时候没这个问题呢?加就加吧,果然加上后一点问题都没有.唉,真是搞不明白.最后在新建DLL项目时,DELPHI有一段注释给了我答案. library MyDll; { Important note

AspectJ 出现错误::0 can't find referenced pointcut 的解决之道

使用AspectJ注解开发AOP应用时,会遇到以下问题: ::0 can't find referenced pointcut 这个问题,与你所在的开发环境有关,如下表 jdk version spring version aspectjrt version and aspectjweaver version 1.6 3.0 + aspectjrt-1.6.2  and aspectjweaver-1.6.2 1.7 3.0 + aspectjrt-1.7.3 and aspectjweaver

IIS7 和IIS8.0 HTTP 错误 500.19 - Internal Server Error 问题的解决方式

百度了好久,没找到解决这个问题确切的答案,我也知道肯定是权限的问题,当然,经过一番尝试之后,最终攻克了,解决之道例如以下(个人方法,能够一试): 1.找到你的配置文件所在的目录,我的是 E:\源代码\ASP.NET\DtCms10Beta2 2.右键,点击属性,切换到"安全"选项卡上,将 IIS-IUSRS 用户组加入到安全列表中,并按需求赋予其权限(我赋予了改动的权限),更改后例如以下图: 3.查看 web.config 的安全权限,假设有此用户组的权限则说明成功,否则进行下一步:

androidstudio打包时出现错误Error:Execution failed for task ':app:transformClassesWithDexForRelease'解决方法

今天在android studio上打包项目时,遇到了Error:Execution failed for task ':app:transformClassesWithDexForRelease这么个错误,记得之前也遇到过这种问题,却如何想不起怎么解决的,只好再次在网上查资料,总算是解决了 这个问题的原因倒是简单的很,是因为我项目中应用的jar包重复,我在build.gradle文件的dependencies中重复依赖了libs下的jar包,将下边的删除即可 androidstudio打包时出

cvs提交错误:'Committing resources' has encountered a problem 解决办法-------程序员没有解决不了的错误

利用cvs提交项目时项目提交是一个空文件夹,报错如下: 删除这个项目分享是,报错: 原因:这是文件系统不同步的问题,是因为在eclipse或mycelipse之外对工程中的resource进行修改引起的(或者是由不同的系统间对文件进行修改引起的): 解决办法:上传前和更新前都刷新一下工程,右键项目名---->Refresh 这个问题拖了几天没有得到解决,本来以为没有办法解决了 ,看来程序员是没有解决不了的问题啊,哈哈哈  cvs提交错误:'Committing resources' has

连接数据库出现错误:1045-Access denied for user 'root'@'localhost'解决方法

Navicat for MySQL 链接: https://pan.baidu.com/s/1slwQxVB 密码: r737 1.出现这个问题的原因之一是权限的问题,也就是说你的电脑可能没有权限访问mysql数据库. 讲道理这种情况其实基本上不该遇到,因为我们在安装mysql之后,root其实是有最高权限的,而且很少会有人去修改root的权限. 这个问题的解决方法就是授权.授权命令大概是这样的: grant all privileges on *.* to 'root'@'192.168.0.