搜索
查看: 20497|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
+ Z: P- T" O& e6 {1 |
 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 错误' ]: l. i1 [% P  w! h9 A; c
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:: ]) N! K4 q8 N. F% _
  1)将function gd_version()改成static function gd_version()即可。
4 `7 P: F6 A; H' ]: ^# p  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
# w, {" e3 L' k" c) G$p = new cls_image();
2 d1 c" S% e8 n) x# Areturn $p->gd_version();
* w# n$ Y/ A! t( a& n8 i7 o
/ S' x' h4 X2 i5 G  W1 ?& N  T! H" O9 X. c" k
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
5 M& P9 i0 h* F8 @% S3 n安装进程已中止6 i! ~2 B: u" y$ C4 O
创建配置文件............成功
6 w4 g, L, w! F. x& i; V3 p( q创建数据库............成功
1 _% F8 D& v$ O/ i- R7 ~安装数据............成功! I9 z5 X: c" P/ u/ O7 k
创建管理员帐号............成功& k0 p9 j9 e, g7 |& f
处理其它............失败
0 z+ X% V( P9 M2 u
* y3 D8 A/ ^% Z  ~6 AWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528/ q  S( J' e$ Z: q1 O2 p2 p
无法创建目录,无法创建目录7 f" s) Y0 y6 T. O6 h- P
解决方法如下:3 c5 o" N# O) @  ^/ k/ q9 u
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
% U/ A6 d! Y6 v+ ]* b4 k(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。, v7 g% `# f; O/ f! A7 I7 ]
不安装测试数据库一样可用,一样正常,不是问题.....  q" {& {$ z/ e4 ^8 ]3 d( w
愿看到此文章的朋友能解决问题; ' h6 {2 s* g9 ]8 R! ?1 X1 `7 a7 D
! t9 O! |( Z3 o6 w
4 g8 S) C" \" ]! W; t$ o
ecshop如何解决includes\cls_template.php on line 418错误
9 s  y/ S4 s7 [( }$ d
1 G6 M( r4 v1 J# ^4 g6 m* G之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
2 s0 I7 I2 J" @% W/ |Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
; _3 b+ }, S* H) `4 p第418行:$tag_sel = array_shift(explode(' ', $tag));6 M& J1 V4 q; ]+ H

, M' i3 o' b/ J, D: M, ]解决办法 1:
0 A& O3 L4 s& i' K0 ?1 n) Q5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: . ~% I6 K& y, M. g* H6 b3 \8 X
# [! O6 U6 K9 r7 A: b
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
; A& V8 Q( z- T(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
- h5 A# Y( E* g9 ^2 F同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
2 H! P* r4 r, V) \3 x
5 n. E' @5 s8 x5 [, `. ]如:
+ M: b$ o8 \6 H' Lfunction get_dyna_libs($theme, $tmp)) z7 G3 z6 |( s9 v
{! I* m- `4 r0 U/ @# r! v
$extsub = explode('.', $tmp);# F8 V7 ]. H% S, g, n; P
$ext = end($extsub);
% k% P7 l5 R" ~$tmp = basename($tmp,".$ext");
0 u: v0 j4 h8 v( s- Q$sql = 'SELECT region, library, sort_order, id, number, type' .; x( ^/ }/ [& q# m% s  H0 V
' FROM ' . $GLOBALS['ecs']->table('template') .8 |, K6 ^: }3 P2 ]% i( t; G
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".$ I# |) ^8 U7 a6 L% q9 }7 X
' ORDER BY region, library, sort_order';+ z4 d  L" f# ]: a$ }
$res = $GLOBALS['db']->getAll($sql);
3 z2 J3 q9 Z' s: r0 E" n$ b$dyna_libs = array();
# }$ M% G# t- Y! |9 S3 \foreach ($res AS $row)6 ^- t$ y1 d. R+ `. b
{
/ r& _, m5 t  m$dyna_libs[$row['region']][$row['library']][] = array(
5 K7 H, M3 ]! w" A: m'id' => $row['id'],# F1 K: x5 p/ k0 `; H
'number' => $row['number'],) i" O/ J% A& L6 Y# J" g5 C- V  }
'type' => $row['type']
3 g  U" c, W8 f7 q2 O* N: v, h  c3 L);5 R; L7 O( o. f
}
, {) f7 P: ]1 Breturn $dyna_libs;( ?1 ]6 [* |. e4 L
}& f9 w7 s/ o: x3 c5 y& ~" W
/ L5 w# K$ l0 r. \. }8 m  i. Y
将$ext = end(explode('.', $tmp));& W- m, f, L9 L% R3 Z. h4 b
改为# r- I5 {9 A: m2 n  M- B
$extsub = explode('.', $tmp);$ s6 h- i+ P7 p' N- A+ m2 L& K( \
$ext = end($extsub);
) W% z. M3 _9 q/ d4 H
; a, q; N0 t9 E解决办法 2(屏蔽错误) :
0 f0 P9 M) w6 {/ c 8 a3 i# n' f: d9 u0 H. F
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
  [$ O- \( v4 Y; {2 P  X4 gphp.ini中有如下设置:% ]  A, I5 F; E9 h& \( q- d3 a8 v
error_reporting = E_ALL | E_STRICT
: y2 |, u0 I3 p, t- t# S 9 @! V" F: W  T* D/ K6 v
这是说,显示那些不符合编码规范的警告(coding standards warnings)。$ Z3 M7 O/ P: w, s: X! \
Joomla其实是建议取消error的输出,如果出于调试需要,应改为+ Q. j0 l" ?; s2 \9 L
error_reporting = E_ALL & ~E_NOTICE% u; V/ w4 A. v" N% `$ [# e* K
( j+ y: I3 E4 a- G2 L0 m3 b
问题得到解决。
/ F( t: f( K$ G
. \3 c5 u/ {6 C! i' b4 z' L5 \& z, {+ R& K# U9 ]
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
* t( f7 n! ]6 b% y1 Y5 k4 dphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));; k4 J5 f$ U" E
改为 :
5 t8 M- g! ~) Q9 ?0 {6 t$ B3 W$extsub=explode('.', $tmp);$tmp=end($extsub);
; {: \2 X& h/ s5 B: ^1 w( }# v9 o( J6 Y. e
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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