搜索
查看: 20476|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
. Y4 z% l9 p' i& |4 D  U$ k
 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 错误
$ A3 e: G; o5 n& E  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:2 \  n3 k, Q' s% {4 B
  1)将function gd_version()改成static function gd_version()即可。3 l, m3 |3 w. h6 ~
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:6 J5 Q8 q; M8 ^
$p = new cls_image();
# I4 u& W1 q* P9 ireturn $p->gd_version();
% z: |. A! I. B1 q: X. _5 ]1 `" u- m: r* j
% k! \* i/ k/ V# }
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:2 h; [1 ]  C# }9 x9 a: D( p1 s
安装进程已中止# f2 R: S# z3 S6 a0 ^; ?! e5 ~
创建配置文件............成功; y6 @# P% l' ^2 u, _
创建数据库............成功
$ i* f! @" N1 o- i安装数据............成功
4 y1 ]  Z  i. I5 c+ a! G$ a! a$ m, h, x" K创建管理员帐号............成功3 R# n: w$ w. ~
处理其它............失败2 ?8 u! f* ^! h4 {) T. h
1 l4 B4 m; N. }" v/ m
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
7 r0 F4 n9 L$ A无法创建目录,无法创建目录
" S2 R2 r# L; I$ ^- U2 e7 W* \4 y解决方法如下:
2 O+ a* x+ i; G* F点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: % ^- {2 d! J' b+ e/ ^& Y- J
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。* i' d- s- W4 ^
不安装测试数据库一样可用,一样正常,不是问题.....
: T# P. I1 U8 y, z4 `% i; e5 o6 M愿看到此文章的朋友能解决问题; % T8 b4 S: ]0 ~6 c% z3 M2 k

( W) T0 h7 P1 W- a; R
  t+ U4 I" m. u9 fecshop如何解决includes\cls_template.php on line 418错误
& t' ~6 z" a- ?  a# o" P$ M
0 O: t6 l, d/ s% U+ Z8 x% T. o之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
: r6 E. m- ?3 x$ ]' K! ~% i0 eStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418% |7 e3 M5 G. g/ B! H% F
第418行:$tag_sel = array_shift(explode(' ', $tag));
1 T" j# M# z8 s% G* ]' P; L# ? . M! s1 ^5 {+ v& F. l
解决办法 1:
  L0 r. n) m, P! C& K9 S5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: 8 z; U/ U+ M# ~- l5 A

, W" |5 l# `, F5 a" D6 T& A/ n; \8 s$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);' a$ T9 F9 R2 l% K7 v
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
9 `# a7 Q  _* n同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决' }7 X, W) T; a0 }% x% M. ^. j4 {
$ c; v# }  n$ K- {; ^7 I
如:& j+ c/ z% w- W! _
function get_dyna_libs($theme, $tmp)  _, n, r' T9 Q  y+ Z6 q* K' o
{
2 ^+ p" }: d* |; V5 P- U$extsub = explode('.', $tmp);6 ?( ]8 p" z7 _) E
$ext = end($extsub);
- ~# J; ?9 S* A+ t! R$tmp = basename($tmp,".$ext");
+ H4 X) q3 c9 P8 D$sql = 'SELECT region, library, sort_order, id, number, type' .2 r/ x& u+ Y/ H1 ~9 r0 D6 j
' FROM ' . $GLOBALS['ecs']->table('template') .
- _+ J! Z( M/ K  E$ k) Q3 O( n9 G% i" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".9 R% L( v! g. ^: C$ x
' ORDER BY region, library, sort_order';6 e1 `7 F& U7 r- Y
$res = $GLOBALS['db']->getAll($sql);% r0 n1 L' s+ _1 q: d% ?$ l# u9 U
$dyna_libs = array();
% k0 ~% H3 k- t" Zforeach ($res AS $row)
& i' \  b  ~) {% b{! l$ I: c. N/ g. ^. B% T: J
$dyna_libs[$row['region']][$row['library']][] = array(
: y% }& j% n* E# m'id' => $row['id'],
9 p. \+ _7 A% _# J- ]4 ~  q  y'number' => $row['number'],( D/ h: h* j2 m9 }! f
'type' => $row['type']7 A" o5 P! _4 s( T" L2 O
);
$ f  _1 v1 p9 `8 J; }2 y}
9 m- K" ~) E) R: w; Y% Treturn $dyna_libs;
. u( [  @/ f* x  t6 v}
6 x6 o. U4 _7 h, W/ B6 x* B + T+ c. ^; J# X  \5 J5 n
将$ext = end(explode('.', $tmp));: f+ @# Q; ~5 m
改为
0 ]/ f3 |/ d/ N5 L! X$extsub = explode('.', $tmp);) U) X, w7 F5 V; {8 g5 B
$ext = end($extsub);3 @: h* @. Q  w# i1 \
6 m5 r6 i+ [8 I" {7 t
解决办法 2(屏蔽错误) :
- l; [  L2 [4 ~* i. u* [ ; v* j6 d8 p6 z2 |1 y
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT5 H! u( s& ^. u5 a. c8 H  v
php.ini中有如下设置:& l9 m8 g! a  j; G9 d
error_reporting = E_ALL | E_STRICT
: |. q/ n8 p9 T2 @ ( M3 }4 ~% A$ `; \9 t+ v9 R
这是说,显示那些不符合编码规范的警告(coding standards warnings)。% ?$ m( y, Z; J  L, Z/ _
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
6 U: L' s0 c! x6 Cerror_reporting = E_ALL & ~E_NOTICE
: i5 K- D: Z2 e0 p3 z 1 v# U4 J. c" {+ d! h/ `) W, m* k
问题得到解决。
! C6 q0 c  c& @8 X
: L( b) `; z6 L/ f8 D" }' z1 O
, p# A6 n" ]) i4 t9 i8 a* R/ d  JEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line0 E8 h+ N  O( z
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));7 [3 b' t0 t& L( @; C* P- b
改为 :1 v5 B/ m0 I& {5 `9 r# _
$extsub=explode('.', $tmp);$tmp=end($extsub);; C8 L) A* p8 T
- _* Z% a; K) \! P& }
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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