搜索
查看: 20502|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
5 a8 f* L6 k7 S" D) Z, I5 A
 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 错误
: n3 Q  s2 c' w9 a# E" I; ~) ?% b  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:4 u( Y, _" I, j# N
  1)将function gd_version()改成static function gd_version()即可。
0 e& T% Z2 q# N  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
/ G8 L* d, ]* f* C$p = new cls_image();, l& e" H6 u: y) V* V) u/ B* }; ]
return $p->gd_version();3 t0 g2 L* h0 d# ]) H% O

+ T% P& ^, w) R# k& n& A. H
! M/ T- o. [+ [3 H/ _  e( T1 g下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
6 a* |9 S% E5 ], g" G安装进程已中止) F6 L' C8 J# P- D9 l# z( t2 Z
创建配置文件............成功, D3 R7 S- s* W+ s( `# p+ z
创建数据库............成功
$ j* R! y8 y9 y5 e% i安装数据............成功+ j" L  Y- X" G2 z( s
创建管理员帐号............成功4 G+ G9 ~+ s, B# F5 J) z' k
处理其它............失败  c: x9 ?, t4 G6 {) A

- z; j5 {& k0 F4 f0 U4 x" P) lWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
: A( j  [- p2 ^+ _3 R4 h无法创建目录,无法创建目录
+ ^' G5 ?  a2 N  C( l解决方法如下:
5 w: T1 ]/ `$ |5 ^+ y点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: ' k3 B( n  {2 g) Z7 V
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
3 X+ Y  K1 ~3 B' c" J/ Y- h不安装测试数据库一样可用,一样正常,不是问题.....
. J. E. j: u% b愿看到此文章的朋友能解决问题;
; w! Q1 m2 q; p9 |) ?7 G9 o1 X1 h
0 A) K2 M* f3 r& z6 X) o
ecshop如何解决includes\cls_template.php on line 418错误) B4 f0 s+ E/ m0 D
2 x2 B. `6 t, D: x
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
# m* z' N7 I3 nStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
; J3 ~. B2 L6 O' U( [9 z, Z/ u第418行:$tag_sel = array_shift(explode(' ', $tag));
- z6 c# i- ~) K1 w* c; [& y
6 K/ J5 B6 ?9 g$ v: o( k# g解决办法 1:3 g1 Z& C1 O9 ^4 X" e
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
7 k; {  ~9 K6 r% q3 L
& f0 ^  j/ i0 h, Q$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
- H0 @$ F+ s; a(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
' v# u  y- v  w+ L* W' @同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
/ t" r" k" o4 b% p - N) C: ]0 U0 C. a) b/ F/ o3 c3 G
如:8 _, j) l' D) Z$ a9 G
function get_dyna_libs($theme, $tmp)
8 v  x5 {) M# Z; f, K/ s! m{! }2 f" L2 |' o& M$ Y9 D
$extsub = explode('.', $tmp);
! A4 M  i/ j0 Y7 M2 b0 b  R8 E* f2 q/ J$ext = end($extsub);
3 n5 P) Y9 B4 @; G. u$tmp = basename($tmp,".$ext");% ?' X* U' A+ L! O9 w
$sql = 'SELECT region, library, sort_order, id, number, type' .2 f, J1 t9 _  b  o7 Q: s; r. G
' FROM ' . $GLOBALS['ecs']->table('template') .
. M. o# q$ J! a: C" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".1 v: l* N- h- l9 Z( ?& s' I* @# p; m5 ~
' ORDER BY region, library, sort_order';% `- o2 X+ U$ e! J" ^9 ]- o9 g4 B
$res = $GLOBALS['db']->getAll($sql);
' @/ m# ~. f4 L# L1 g6 g2 H6 k- h. P$dyna_libs = array();8 s+ d) r% b* E
foreach ($res AS $row)
$ G8 V( w4 q/ }% X% b6 W$ }{
% @% z6 }" V+ y1 q7 v9 A$dyna_libs[$row['region']][$row['library']][] = array(
$ N% n7 h' p+ i# Q'id' => $row['id'],
3 }7 Z* [: ?8 M. F  B'number' => $row['number'],
, q% d: t+ k6 {& {( z2 e'type' => $row['type']* G2 a  [5 L# V# g5 E. r5 g
);0 q: c8 g. ~. G% h9 V: ?) L
}5 M5 l& L5 @2 v3 ~4 m
return $dyna_libs;: L7 G8 y+ x; f' |, s7 e; t
}
1 {) P+ z- N: g8 I5 }" o: j6 D# f& a
. C% |- S1 \8 x* k% ?0 B( I5 D将$ext = end(explode('.', $tmp));6 x' d  S! K7 U+ e; ~! U5 D3 V% Z8 l
改为1 @7 B$ p& U, E( B: O) D) P
$extsub = explode('.', $tmp);8 h& a9 y. ]; c
$ext = end($extsub);* O. \( f3 a2 l2 Y" \& q) w

$ U& O" K/ G$ [( c  q解决办法 2(屏蔽错误) :
& h  z/ n! l( C; q) ]9 K( f 3 m) m2 d5 y+ d1 ^8 l. `* z' G) T
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT/ W+ B  b" k$ K
php.ini中有如下设置:9 {( q- U# v  X) @2 j0 X3 E7 d5 N! t
error_reporting = E_ALL | E_STRICT& R3 h9 K  O, j+ f3 F2 t" h( f# E

) K! W. W2 G: e: c这是说,显示那些不符合编码规范的警告(coding standards warnings)。
  F) z9 P" K  b2 A6 P: a4 ?  yJoomla其实是建议取消error的输出,如果出于调试需要,应改为' x' H, b. G0 B8 x
error_reporting = E_ALL & ~E_NOTICE/ T' F7 p, T5 y' D1 |6 v! W

& x; F: X8 p7 o$ m1 [$ z问题得到解决。1 v7 V  y* q3 Y& A$ I
  N& N$ \8 E% }5 k; T; ^& {& \
3 O( W- b* D. h( d' I% F2 [
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line0 Y# h6 @) F. y# m8 F$ v5 F5 q% g, z6 s
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
+ g  f5 z+ k7 t* B! n% a8 Q0 g. x( `改为 :& g: \; O) {) O! ~* I# a
$extsub=explode('.', $tmp);$tmp=end($extsub);
( E6 n1 a3 j5 V
) n3 B4 r1 Y' y9 _  N
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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