您现在的位置是:首页 > 教程 > ecshop商城教程ecshop商城教程
ecshop安装常见报错的处理方法
翠风2025-01-14 15:35:54ecshop商城教程已有人查阅
导读在安装Ecshop的时候,会遇到几个问题:1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\ \ecshop\install\includes
在安装Ecshop的时候,会遇到几个问题:
1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\ \ecshop\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();改成:
2.检测环境的时候提示:是否支持 JPEG是不支持的。
解决:查看发现有libjpeg.lib库,GD2库也有,都加载了,也都正常。查看ecshop源代码发现install/includes/lib_installer.php中第100行,JPEG写成了JPG,正确的应该是:
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 D:\X\ \ecshop\install\includes\lib_installer.php on line 225
解决:
方法1,将php.ini里是date.timezone前的";"去掉,改成:date.timezone = PRC;
方法2,在页头使用 ini_set('date.timezone','Asia/Shanghai');
方法3,在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s');
4、Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
第418行:
方法1:这个是5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
解决办法 2(屏蔽错误) :
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
php.ini中有如下设置:
改为
1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\ \ecshop\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)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 D:\X\ \ecshop\install\includes\lib_installer.php on line 225
解决:
方法1,将php.ini里是date.timezone前的";"去掉,改成:date.timezone = PRC;
方法2,在页头使用 ini_set('date.timezone','Asia/Shanghai');
方法3,在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC'); //东八时区 echo date('Y-m-d H:i:s');
4、Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
第418行:
$tag_sel = array_shift(explode(' ', $tag));
解决:方法1:这个是5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了
$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
php.ini中有如下设置:
error_reporting = E_ALL | E_STRICT
这是说,显示那些不符合编码规范的警告(coding standards warnings)。改为
error_reporting = E_ALL & ~E_NOTICE
本文标签:
很赞哦! ()
相关文章
随机图文
-
ecshop后台增加栏目查询会员是否重复注册的方法
ecshop的后台要查询哪些会员是否有重复注册时,可以利用特定的栏目来判断~ 譬如会员电话...修改前请务必先备份下列档案!!! -
ecshop订单一键发货简化订单发货流程
步骤一:在templates/order_info.htm文件找到:在此代码前加上“一键发货”按钮,代码如下:在此代码下添加发货操作代码,代码如下 -
去掉ecshop文章列表页和详情页发表时间的方法
下面修改方法是以官方默认模板为例1、首先修改文章列表页,打开 article_cat.dwt 文件, -
ecshop模板修改文件介绍
ecshop模板如何修改?很多人在问这个问题,今天就以图解的方式给大家详细说下。相信学完之后,你会很清楚如何修改ecshop模板,不管你是初学者还是程序高手。
留言与评论 (共有 条评论) |