php cannot call constructor,安装ECshop普遍问题的解决方法

安装时的问题:

ea56c26ff3e365c3bfdb6d4d22393463.png

1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in /usr/local/httpd2/htdocs/upload/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,所以会出错。

这时候只要:

1)将function gd_version()改成static function gd_version()即可(严重建议使用此方法!!!)。

2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:

$p = new cls_image();

return $p->gd_version();

2.检测环境的时候提示:是否支持 JPEG是不支持的。

解决:查看发现有libjpeg.lib库,GD2库也有,都加载了,也都正常。查看ecshop源代码发现install/includes/lib_installer.php中第100行,JPEG写成了JPG,正确的应该是:

$jpeg_enabled = ($gd_info['JPEG Support']=== true) ? $_LANG['support'] : $_LANG['not_support'];

为何说Ecshop写错了,因为打印数组$gd_info的时候,里面的键名是:JPEG Support。而$gd_info数组里的值都是直接调用系统环境变量的。

3.默认时区问题:Warning:date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /usr/local/httpd2/htdocs/upload/install/includes/lib_installer.php on line 223

解决:

方法1,修改PHP配置文件。如果你服务器的主要时区是亚洲上海,那么修改这里是比较妥当的,当然更稳妥的办法是通过.htaccess导入PHP设置。

打开PHP.INI大概在958找到; date.timezone =去掉前面的注释;号,然后改成date.timezone =Asia/Shanghai,保存配置文件,重启你的服务器。

方法2,在页头使用

ini_set('date.timezone','Asia/Shanghai');

方法3,修改\install\includes\lib_installer.php文件。在这个文件顶部<?php之内加上如下PHP代码 :

date_default_timezone_set ('Asia/Shanghai');

登录使用时问题

一,ECshop是基于PHP5.3以下版本开发的,由于PHP5.5版本已废除了e模式修饰符,因此如果你使用的是PHP5.5以上环境安装,可能会出现类似以下3种报错

PHP 5.5. 起, 传入 "\e" 修饰符的时候,会产生一个 E_DEPRECATED 错误; PHP 7.0. 起,会产生 E_WARNING 错误,同时 "\e" 也无法起效。

可以使用 preg_replace_callback() 代替。

1,Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /usr/local/httpd2/htdocs/upload/includes/cls_template.php on line 288

解决方法已经在报错提示中,打开/usr/local/httpd2/htdocs/upload/includes/cls_template.php定位至300行,将原本

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

改为

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

2,Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in F:\php_act\11_ec\upload\includes\cls_template.php on line 555

定位到upload\includes\cls_template.php第555行,将

$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);

改为

$val=preg_replace_callback("/\[([^\[\]]*)\]/is",function($r){return '.'.str_replace('$','\$',$r[1]);},$val);

3,Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in F:\php_act\11_ec\upload\includes\cls_template.php on line 1075

定位到 upload\includes\cls_template.php on line 1075,将

$pattern = '/.*?/se';

$replacement = "'{include file='.strtolower('\\1'). '}'";

$source = preg_replace($pattern, $replacement, $source);

改为一行

$source = preg_replace_callback('/.*?/s', function($r){return '{include file='.strtolower($r[]). '}';}, $source);

4,Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in F:\php_act\11_ec\upload\includes\cls_template.php on line 496

定位到upload\includes\cls_template.php on line 496

$out = "<?php \n" . '$k = ' . preg_replace("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n";

改为

$out = "<?php \n" . '$k = ' . preg_replace_callback("/(\'\\$[^,]+)/" , function($r){return stripslashes(trim($r[],'\''));}, var_export($t, true)) . ";\n";

二,PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递

1,Strict standards: Only variables should be passed by reference in /usr/local/httpd2/htdocs/upload/includes/cls_template.php on line 423

定位upload/includes/cls_template.php on line 423:

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

改为

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

$tag_sel = array_shift($tag_sel);

2,Strict standards: Only variables should be passed by reference in F:\php_act\11_ec\upload\includes\lib_main.php on line 1329

定位到upload\includes\lib_main.php on line 1329

$ext = end(explode('.', $tmp));

改为

$_end=explode('.', $tmp);

$ext = end($_end);

三,Strict standards: Redefining already defined constructor for class XXX

此报错是使用PHP5.4以上版本安装ecshop可能出现的,例如本人安装后登录管理后台显示不出验证码这个情况:

97aec1377ccaaf344c2ac5d60af1292c.png

右键验证码处点击“复制图片网址”后打开,便能看到这个错误。

打开报错所在文件看到如下代码:

function captcha($folder = '', $width = 145, $height = 20)

{

if (!empty($folder))

{

$this->folder = $folder;

}

$this->width = $width;

$this->height = $height;

/* 检查是否支持 GD */

if (PHP_VERSION >= '4.3')

{

return (function_exists('imagecreatetruecolor') || function_exists('imagecreate'));

}

else

{

return (((imagetypes() & IMG_GIF) > 0) || ((imagetypes() & IMG_JPG)) > 0 );

}

}

function __construct($folder = '', $width = 145, $height = 20)

{

$this->captcha($folder, $width, $height);

}

可以看到其中使用和类名相同点函数名作为构造函数是php4时代的写法,php5时代的构造函数是 __construct(),ecshop为了兼容老版本的php,所以采用了上面的写法,但是从php5.4开始,对于这样的两种写法同时出现的情况,要求必须__construct()在前,同名函数在后,所以只需要对调两个函数的位置即可。

四,mktime()问题

1,Strict standards: mktime(): You should be using the time() function instead in F:\php_act\11_ec\upload\admin\sms_url.php on line 31

定位到upload\admin\sms_url.php on line 31

$auth = mktime();

改为

$auth = time();

2, Strict standards: mktime(): You should be using the time() function instead in F:\php_act\11_ec\upload\admin\shop_config.php on line 32

定位到upload\admin\shop_config.php on line 32,修改同上

安装office2010提示要安装MSXML6&period;10&period;1129&period;0解决方法

系统win7 32位 安装office2010出现了错误,提示要安装MSXML6.10.1129.0解决方法 1.下载MSXML6.10.1129.0进行安装 2.若本机已安装过不管用: a.在运行里 ...

VS2008 SP1 安装卡在 VS90sp1-KB945140-X86-CHS的解决方法

VS2008 SP1 安装卡在 VS90sp1-KB945140-X86-CHS的解决方法 VS2008 SP1 安装卡在 VS90sp1-KB945140-X86-CHS的解决方法 方法一:(不推荐 ...

【转】chrome 67版本后无法拖拽离线安装CRX格式插件的解决方法

第一种:开启开发者模式即可 (推荐) chrome  的设置 -> 更多工具 -> 扩展程序,开启开发者模式即可! 第二种方法:修改参数 首先打开下面地址:chrome://flags/# ...

ubuntu安装vmplayer出现问题的解决方法

ubuntu安装vmplayer 出现问题的解决方法 1:ubuntu12.04安装vmware12出现cannot ope dev/vmmon及modprobe vmmon提示密钥无效的解决办法 笔 ...

Tomcat安装教程及常见错误解决方法

目录 Tomcat安装教程及常见错误解决方法 一.安装前准备 ·熟悉自己电脑的操作系统版本(32位or64位) ·保证电脑上已经装好JDK,并且已经设置好环境变量. 二.Tomcat安装教程(以Tom ...

php5&period;4下安装ECshop出现错误的解决办法

转:http://www.programmernote.com/?p=65 1.安装是会提示 Warning: date_default_timezone_get(): It is not safe ...

安装Mysql提示1045错误解决方法

MySQL安装提示一下错误 The security settings could not be applied to the database because the connection has ...

Windows Server 2008 R2安装WAMPSERVER无法启动的解决方法

其实根本不算什么解决方法,会者不难的事.Windows Server 2008 R2(也包括其他版本的Windows)默认状态下安装WAMPSERVER经常是无法顺利启动WAMPSERVER的,尤其是 ...

Linux搭建python环境中cx&lowbar;Oracle模块安装遇到的问题与解决方法

安装或使用cx_Oracle时,需要用到Oracel的链接库,如libclntsh.so.11.1,否则会有各种各样的错误信息. 安装Oracle Instant Client就可得到这个链接库,避免 ...

随机推荐

vtkQuadric创建二次曲面

在本实例中,我们将用到vtkQuadric.vtkSampleFunction.vtkContourFilter三个类,分别是二次曲面函数.函数曲面抽样和等高滤波. vtkQuadric负责二次曲面基 ...

Spring MVC重定向和转发及异常处理

SpringMVC核心技术---转发和重定向 当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向.而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器.对于 ...

详解 ML2 Core Plugin(I) - 每天5分钟玩转 OpenStack(71)

我们在 Neutron Server 小节学习到 Core Plugin,其功能是维护数据库中 network, subnet 和 port 的状态,并负责调用相应的 agent 在 network ...

PHP守护进程

php也是可以直接进行守护进程的启动与终止的,相对于shell来说会简单很多,理解更方便,当然了php的守护进程要实现自动重启还是要依赖于shell的crontab日程表,每隔一段时间去执行一次脚本看 ...

从&OpenCurlyDoubleQuote;程序员转行卖烧饼”想到IT人创业

我的一个朋友最近总在跟我念叨着“我不想做开发了,整天累死累活写程序,也攒不下几个钱.我想辞职搞点啥!” 我问他:“你想搞点啥?”. 他说:“搞啥都比做开发强,做个网站赚广告费,接私活……实在不行我去卖 ...

&period;NET中开源CMS目录

提起开源cms,大家第一想到的是php的cms,因为php开源的最早,也最为用户和站长们认可,随着各大cms系统的功能的不断完善和各式各样的开源cms的出现,.net和java的高端的cms系统也逐渐 ...

面向新手的Webserver搭建(一)——IIS的搭建

非常多童鞋说自己是做移动开发的,想挂个简单的Web API,但是server又不会搭,这样一来測试就成了问题.看看网上的教程.发现略难懂,并且大多是一个转一个,没价值,所以干脆写几篇文章讲讲简单的We ...

HTML meta refresh 刷新与跳转&lpar;重定向&rpar;页面

可用于 ...

Reverse Words in a String leetcode

Given an input string, reverse the string word by word. For example,Given s = "the sky is blue& ...

Python把给定的列表转化成二叉树

在LeetCode上做题时,有很多二叉树相关题目的测试数据是用列表给出的,提交的时候有时会出现一些数据通不过,这就需要在本地调试,因此需要使用列表来构建二叉树,方便自己调试.LeetCode上二叉树结 ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zblog php和asp功能,ZBlog是否适合PHP或ASP?我们该如何选择?

我最近玩了zblog一段时间&#xff0c;对于大多数第一次联系zblog的博客&#xff0c;他们会问zblog是否适合PHP或ASP&#xff1f;我们该如何选择&#xff1f;事实上&#xff0c;我真的不明白这个问题。我个人更喜欢PHP。今天我将整理出来并对PHP版本和ASP版本进行比较&#xff0…

php决策管理,报表管理与数据分析:为系统未来发展规划提供决策依据,有效避免IT管理与投资的盲目??...

据了解&#xff0c;很多中大型企事业单位的IT基础结构具有复杂、分散等特征&#xff0c;并且信息化程度越高&#xff0c;数据类型越繁杂&#xff0c;数据量也越庞大。许多单位不得不付出极大的人力、物力对网络进行管理。而一个单位的信息化的程度和IT部门的服务水平&#xff0…

设置linux拨号服务端,CentOS Linux上搭建PPPoE服务器及拨号设置

CentOS下PPPoE拨号设置1.查看并安装拨号软件&#xff1a;[rootRedHat ~]# rpm -qa|grep pppoe[rootredhat ~]# yum -y install rp-pppoerp-pppoe.i686 0:3.10-8.el62.查看adsl-setup命令所在位置&#xff1a;[rootredhat ~]#whereis adsl-setupadsl-setup:或者直接搜索pppoe信息…

linux上pyenv卸载,在Ubuntu 18.04系统下安装pyenv的方法

本文介绍在Ubuntu 18.04操作系统下安装pyenv的方法&#xff0c;使用它可以进行Python多版本管理&#xff0c;目的是防止不同的Python版本因为不兼容而出现错误。安装pyenv其实非常的简单&#xff0c;只需要在系统终端中运行一条命令即可&#xff0c;以下是操作方法&#xff0c;…

linux防火墙作用是什么,Linux防火墙操作1

什么是防火墙防火墙可通过监测、限制、更改跨越防火墙的数据流&#xff0c;尽可能地对外部屏蔽网络内部的信息、结构和运行状况&#xff0c;以此来实现网络的安全保护。简单来讲 就是防止外界通过网络攻击Linux服务器的一个软件本次学习目标&#xff1a;防火墙的启停&#xff0…

lede 自定义linux,OpenWrt 和 LEDE 宣布正式合并

OpenWrt 和 LEDE 项目已在官网正式宣布合并&#xff0c;合并后的项目仍用 OpenWRT 命名。合并后的 OpenWrt 项目将按照 LEDE 制定的规范进行管理。原有的 LEDE 和 OpenWrt 项目的活跃成员将继续在合并后的 OpenWrt 上工作。LEDE 项目是 OpenWrt 的一个衍生项目&#xff0c;曾被…

旧衣回收小程序搭建有什么优势?

今年以来&#xff0c;旧衣回收行业分外火热&#xff0c;不断有创业者进入到市场中&#xff0c;其中不乏有年轻人&#xff0c;足以可见行业的火爆。 我国是人口大国&#xff0c;每个人闲置的衣物加在一起的数量难以计算&#xff0c;旧衣回收行业具有巨大的发展空间。 此外&…

c语言程序兔子反之问题,C语言解决兔子产子问题代码及解析

有一对兔子&#xff0c;从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子&#xff0c;假设所有的兔子都不死&#xff0c;问30个月内每个月的兔子总数为多少&#xff1f;问题分析兔子数的规律&#xff0c;如下表所示&#xff1a;月数小兔子对数中…

c语言fork()创建线程,操作系统的创建原语是fork()还是creat()?

满意答案MythSwift2013.09.10采纳率&#xff1a;55% 等级&#xff1a;12已帮助&#xff1a;9461人一个进程就相当于一个主线程。fork一个进程与create一个线程的区别:fork进程:子进程复制父进程的进程环境。父进程结束不会影响子进程的运行。进程切换复制进程环境。create线…

android 最新 support,android support v7 下载-android support.v7包 官方最新版 - 河东下载站...

android support v7是一款功能非常实用的android在进行开发的过程中&#xff0c;必须要进行使用的一个包&#xff1b;这款软件作为一个功能非常全面的功能包&#xff0c;也是目前为止最新的功能包&#xff0c;是您这使用Android开发的时候&#xff0c;非常重要的一环&#xff1…

android aar jar制作,AndroidStudio aar、jar生成及其引用

aar生成新建项目&#xff0c;并在项目中新建Library module&#xff1a;banner&#xff0c;如图&#xff1a;在新建Module中编写完代码后&#xff0c;build整个工程后就会自动生成aar包&#xff0c;包的路径在新建Module 》 build 》outputs >aar目录下&#xff1b;aar引用在…

android 点击侧滑代码,代码分析Android实现侧滑菜单

Android 侧滑菜单的实现&#xff0c;参考网上的代码&#xff0c;实现侧滑菜单。最重要的是这个动画类UgcAnimations&#xff0c;如何使用动画类来侧滑的封装FlipperLayout。1、实现效果2、动画类UgcAnimationspackage com.mmsx.base;import android.content.Context;import and…

html游戏怎么编辑器,HTML的编辑器使用

使用 Notepad 或 TextEdit 来编写 HTML可以使用专业的 HTML 编辑器来编辑 HTML&#xff1a;Adobe DreamweaverMicrosoft Expression WebCoffeeCup HTML Editor(推荐学习&#xff1a;HTML入门教程)不过&#xff0c;我们同时推荐使用文本编辑器来学习 HTML&#xff0c;比如 Notep…

鸿蒙系统hifi,Apple Music将迎来重大更新 HiFi无损音质即将上线?

原标题&#xff1a;Apple Music将迎来重大更新 HiFi无损音质即将上线&#xff1f;前不久有媒体报道称&#xff0c;苹果将在当地时间5月18日推出HiFi版AppleMusic服务&#xff0c;新服务将为Apple Music用户提供无损的流媒体音乐&#xff0c;满足HiFi用户对高音质的追求。而在近…

华为笔记本会不会用鸿蒙,华为MateBook Pro笔记本为什么不用鸿蒙操作系统HarmonyO?...

头条上整天就是各种华为啊鸿蒙啊的&#xff0c;搞得好像人人都见过鸿蒙一样。还是大家以为操作系统就是做个APP或者王者荣耀&#xff1f;据我所知&#xff0c;鸿蒙OS现在我们能看到的&#xff0c;也就是几张PPT截图吧&#xff1f;整天动不动&#xff0c;这个为啥不用鸿蒙&#…

html 复选框name值,HTML(5)表单元素以及对各个表单元素的name、value属性的理解

我在学习表单元素的时候感觉很混乱&#xff0c;特别是 name value这两个属性&#xff0c;没有真正理解它们是干什么的&#xff0c;所以需要梳理一下。HTML表单元素主要有 HTML5新增的表单元素有三个下面梳理一下这些表单元素的用法并指出各元素的name、value属性含义1. 元素元…

苹果6怎样打开html,苹果iPhone的Safari浏览器使用技巧图解

&#xfeff;  大多数的 iPhone 用户们都是用的 iOS 系统自带的 Safari 浏览器&#xff0c;不过很多用户们对 Safari 浏览器却不是很熟悉&#xff0c;因为 Safari 毕竟没有国产浏览器这么动我们&#xff01;这厢脚本之家小编给大家介绍一些 iOS Safari 浏览器的一些你所不知道…

华为p9 html尺寸,华为P9的屏幕尺寸是多少?

华为P9的屏幕尺寸是多少华为P9的屏幕尺寸是5.2英寸。针对华为P9的屏幕尺寸是多少的问题&#xff0c;配置方面&#xff0c;华为P9搭载了麒麟955处理器&#xff0c;麒麟955基于台积电16nm FinFET Plus制程工艺打造&#xff0c;比FinFET拥有更强的性能。架构方面&#xff0c;麒麟9…

html json to table,javascript - HTML - Convert json to table - Stack Overflow

Im trying to convert JSON to a table, but it doesnt. Everything seems fine, but I cannot see the values ​​in my table.My code that converts JSON to table:$(function() {var my_data ;$.each(JSON.parse(sonuc.response) , function(key, item){my_data ;my_dat…

北京科技大学计算机硕士,北京科技大学计算机专业硕士只有面授上课吗

北京科技大学计算机专业硕士比较热门&#xff0c;目前有意接受北京科技大学计算机专业硕士教育的学员&#xff0c;对其是否只有面授上课还比较疑惑。下文可供大家参考&#xff1a;一、只有面授上课北京科技大学计算机专业硕士只有面授上课&#xff0c;有周末班和集中班两种上课…