搜索
查看: 20421|回复: 0

[网站] ECShop网店系统V2.7.0正式版在php5.3下兼容问题

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
* [& b) Q  I; u6 g/ P$ w
 1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in D:\X\www\ecshop\install\includes\lib_installer.php on line 31 错误
: [% T% Y* i. ~2 n2 J  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
( d7 x% B/ s; D2 G  1)将function gd_version()改成static function gd_version()即可。7 |* f. |% ?3 I" W& W* f
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
# c- R9 L+ G' R7 N! D$p = new cls_image();5 Q# v$ O! Z* n6 p' A( |( `' z3 D* H
return $p->gd_version();! ^9 _0 i9 j2 |" R( f) j

6 f. }( r# {3 S# m
3 W7 |" d3 q5 G下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:$ N7 m0 b# l2 n& F' Y
安装进程已中止2 I0 J3 [5 H2 x- W- \/ M% e2 T" G
创建配置文件............成功  H) d% _' e* |- A
创建数据库............成功
+ H9 J! M8 o" S+ X/ L8 L+ U- T安装数据............成功
8 s  R" v+ R4 d创建管理员帐号............成功# u( q+ ]! v: g
处理其它............失败' f, B$ s; |1 D  U: q
8 P4 l( @& Y% @* \" C# d, `5 }5 h; ~
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5283 i6 @  F# {. k( B, ?5 }! z
无法创建目录,无法创建目录
' w  j" s, R9 p! d) R: R解决方法如下:
! c0 ^" [! K: a& }0 X点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 0 b) o3 _0 O) O4 S& `. s5 m
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。3 B5 g. F6 @1 d/ q' F
不安装测试数据库一样可用,一样正常,不是问题.....* u4 Y4 `7 @; x, Z/ p7 Z' `# v
愿看到此文章的朋友能解决问题;
/ @$ P& M9 P0 I0 c; [
4 R2 J0 F) p6 N- @% Y% y2 k, V5 @4 F$ m1 I: v, t3 t
ecshop如何解决includes\cls_template.php on line 418错误
+ \0 K* W! {8 F8 m# X! K3 ]; J5 N. I6 ^
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:8 X$ d. X. q4 F* r9 K7 q: [
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
* d4 g. t# a0 U7 f) n# @第418行:$tag_sel = array_shift(explode(' ', $tag));1 s/ P: Y' K7 v- M$ }" b, U# l

" ^9 M& d2 q& `3 z, ]3 o. G: I解决办法 1:2 w+ Y& J. U& b  ]
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: : V: |/ q1 m6 U% R

1 m" P2 E5 \. f4 R  D. d$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);. |9 A6 V5 b( h$ O4 B
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
  l$ \3 ?7 C- Q' L7 n同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决: `' I( M3 ~2 w

6 I: [5 d* `; K6 p如:
9 G! t9 o1 g; E. }- |2 u3 r1 tfunction get_dyna_libs($theme, $tmp), [! z* b  X" C; I) R' c6 B
{3 z( j" g6 G# g' r3 s6 W. @
$extsub = explode('.', $tmp);4 d, v: O  f! }* [, b3 Q
$ext = end($extsub);
+ l, h1 u' q0 b1 W, `, W% ]$tmp = basename($tmp,".$ext");. g2 P" j, e6 F" r
$sql = 'SELECT region, library, sort_order, id, number, type' .: q! x2 @+ J0 F. [% s9 |
' FROM ' . $GLOBALS['ecs']->table('template') .: K( v+ U6 F9 K5 P* G
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
2 E* l/ ~  I0 g* l' ORDER BY region, library, sort_order';# E8 `2 }6 ?* v& I" e* n, ?* I
$res = $GLOBALS['db']->getAll($sql);
+ S  d" x1 Z# I. ~$dyna_libs = array();
& \  T) y; a/ ^0 f" s, yforeach ($res AS $row)/ ^$ Y. y2 f( J# d8 f5 f! ~. @
{( G4 l& i& J8 t
$dyna_libs[$row['region']][$row['library']][] = array($ Y# o) ?3 X, {
'id' => $row['id'],8 T2 I2 ?8 {8 G" i. a4 A+ |
'number' => $row['number'],! U$ i/ @+ p% e9 ?7 q& r# k3 A
'type' => $row['type']
9 N: `+ U" s# f0 h);7 k: \! \2 m9 z2 r5 K, H8 M
}, g% N8 M9 z. X/ w
return $dyna_libs;& v* w" N  |" e5 ^* q
}
7 g6 H; i8 c9 U$ ]0 Y4 {1 r
3 W3 e0 f7 ~+ F& G# Y将$ext = end(explode('.', $tmp));5 s8 J, o) _1 V6 h& Z* }  t- A* O
改为
: p, l7 ~- K5 i$ L$extsub = explode('.', $tmp);* V' o* Z/ m2 @8 D' T% w! W
$ext = end($extsub);3 d$ t3 N% T2 N* G# e8 ~
6 \: p$ Z$ v( ]2 z- M" F8 N- u
解决办法 2(屏蔽错误) :
4 o0 \. m& @" o9 x* F 8 R. C% K% T* s' A$ {( J% C4 s* h' i( {
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT: }$ F2 S% W1 R* N
php.ini中有如下设置:
  _0 e1 I6 F$ C& _* verror_reporting = E_ALL | E_STRICT$ G' b9 S7 y( }  Q7 e

7 P7 |* s, R8 _这是说,显示那些不符合编码规范的警告(coding standards warnings)。
  z* V. E4 e+ H1 _# oJoomla其实是建议取消error的输出,如果出于调试需要,应改为
, S, s; O; s) r$ z5 I9 }- zerror_reporting = E_ALL & ~E_NOTICE* j3 W& [: {. F
6 u+ Y7 j) F& Z* ?* V$ K8 c
问题得到解决。
0 T5 W* }: A/ B( u: T$ t9 L- ?8 {+ k) F1 b; R8 \
* b4 a7 M! ]1 I+ R1 _8 H
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line! Z+ e+ z( A/ q! g) Q5 H
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
$ ~2 t- v* s" w( g% g6 _. Q4 o. T改为 :
+ d6 q! b7 n+ c+ O& _' }$extsub=explode('.', $tmp);$tmp=end($extsub);
& }/ L4 _8 p5 m  l2 N$ t+ Q7 R1 Z; q3 L
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

热议作品
精华帖子排行
精彩推荐

虾皮社区,成立十年了!

站长自己也搞不懂想做个什么,反正就是一直在努力的做!

Copyright © 2007-2019 xp6.org Powered by Discuz

QQ|Archiver|手机版|小黑屋|虾皮社区 鲁公网安备 37021102000261号 |网站地图
返回顶部 返回列表