搜索
查看: 20434|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式

2 ^( l% t% }( h3 Z4 ?% z. F( H. \; n 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 错误
& _* h2 a* W: W5 s2 o9 `# `# K  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:, v9 h4 C0 O( q1 T4 B. p5 q0 K
  1)将function gd_version()改成static function gd_version()即可。
5 U$ b7 Q6 {4 M  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:( [- z/ Q: k9 m* y& A. T
$p = new cls_image();
  [5 {* y3 y/ O7 Zreturn $p->gd_version();4 f6 z' G' M6 ?* |- p

* g9 P+ ~9 {7 s; p2 s5 n5 L7 Z2 ~8 b
2 [- l7 p7 C! g# U下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:' X' W6 A4 g. u1 H9 V
安装进程已中止
" O7 j+ W6 o6 R: Y5 F$ c创建配置文件............成功2 D7 J' \: ~$ ?2 Z- Z
创建数据库............成功+ h2 b; F8 E8 E1 S, ?4 x
安装数据............成功
9 `) r1 p. \7 z4 W7 f- H创建管理员帐号............成功4 _. F: K, M# T1 M  v. M* R6 }$ w
处理其它............失败
  ]& T( \* c8 q- L: r& |, p
, i6 b0 N' e/ t3 D0 d1 N; C  HWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
  t* w9 x1 X1 O# l无法创建目录,无法创建目录
$ f* _3 U/ @4 H+ I) t  ~9 o解决方法如下:
/ }$ {0 ?$ W! L% L+ K点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: ' x% P" W* B- g1 K
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
0 i! E. f; t4 C# y* y1 p不安装测试数据库一样可用,一样正常,不是问题.....7 l5 ~3 r1 m* V! ~+ C& A: D) a8 ?
愿看到此文章的朋友能解决问题; 6 ^6 F7 P3 s: b

" ^" N* \% |! C6 c, n9 c+ J1 H# }
# N* z! t( y) b- ]3 \% ], K# |ecshop如何解决includes\cls_template.php on line 418错误+ a. T" J6 a: I. y$ R

" q! `/ t5 p3 O  y, j之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:; m# E9 i7 Y' j! }5 `& w' x
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4183 X, A) |1 a; r
第418行:$tag_sel = array_shift(explode(' ', $tag));0 ]( A/ V" U7 t2 ]- e6 @; V

9 t* @- z# u4 U% R$ c解决办法 1:
# C1 M; }7 f6 s9 D) @$ e/ ^5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: ) j: e0 ~5 [2 y. M) \
+ S4 b( L$ O1 B& D2 k' u
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
4 d" K) Z; ~' L5 n0 ?. D(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
% n% q* K' B- f, _1 ~% D- h同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
/ z  t' C  H8 O) I$ Z' n ! t3 Z3 Q2 ~8 M  [- v+ L/ H3 d! d
如:  m2 @; _% d  H7 p& f! y" }
function get_dyna_libs($theme, $tmp)* j5 T' k' _$ A/ l$ a2 p6 w1 T
{
/ N1 |( _6 g# h! T. t$extsub = explode('.', $tmp);
/ f+ ]# }/ H4 c: m$ext = end($extsub);
- E) @6 ^* t3 g+ ?$tmp = basename($tmp,".$ext");1 ]! \" K% D, r% T1 ]* Q
$sql = 'SELECT region, library, sort_order, id, number, type' .
; ~! X/ m% }! |1 O% g6 [5 x' H9 i' FROM ' . $GLOBALS['ecs']->table('template') .
; ~5 P4 ?% O+ y) ^' H1 a% |' D" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".$ }4 G' F* f* m
' ORDER BY region, library, sort_order';
; P+ X5 E# H. ^$res = $GLOBALS['db']->getAll($sql);
, Z9 C$ _; B7 Y& o( E7 n7 T0 Q$dyna_libs = array();" j* d" C4 p4 K# b" }$ S- d5 p4 L
foreach ($res AS $row)1 V. v1 o* A) K5 W! ^/ X
{/ {: y- U/ i# [. Q8 ~2 V4 i8 S, T
$dyna_libs[$row['region']][$row['library']][] = array(
  m" M" K! T' t: S7 E'id' => $row['id'],
: o0 ?( ^8 `$ N  K& \3 H* h'number' => $row['number'],
! ?, N9 e2 W7 {9 t( b- i0 w'type' => $row['type']
& ^2 w4 z0 F3 y7 l& o9 |);: v4 D/ H: M2 [# k8 i8 Y
}" `5 f  r; a$ i1 j7 f% |
return $dyna_libs;
, d/ I5 m$ |# L) L& K& Z}
& N* N' i8 f/ X/ U 7 }& f$ S6 L# B) X
将$ext = end(explode('.', $tmp));
) \* Z% Z. D+ i. ]4 e. H改为; i! _0 Y6 o: b. |0 |: H
$extsub = explode('.', $tmp);
: Q6 j2 N+ i2 T. l5 U1 I* i$ext = end($extsub);
8 t; d1 \+ e5 I9 u8 V
8 a( Y9 ~- Y& f( M解决办法 2(屏蔽错误) :% h/ _; |0 _* w$ [7 X% z
* _6 t% N8 D9 @' r8 @5 x8 s, X
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT0 O5 K2 @: K# l+ ?" |8 l
php.ini中有如下设置:# O$ P/ C& o# b: S- e9 h
error_reporting = E_ALL | E_STRICT( A7 n& l( @; t3 S; E; Q7 a

7 p# W- T" n4 H这是说,显示那些不符合编码规范的警告(coding standards warnings)。
6 W9 v, q. B5 y4 mJoomla其实是建议取消error的输出,如果出于调试需要,应改为( P, \$ _, C2 d: _# K6 `
error_reporting = E_ALL & ~E_NOTICE
: n7 e0 t8 d+ G( ?1 s
+ p0 [$ u" H8 o* L- o1 F问题得到解决。& m0 o8 a1 u5 r& ?
, w  ?% l7 w( m% K0 Z) ~

! h5 ?* C5 k7 l/ _( U+ ^# sEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line( h2 Z! ^  f% }1 Q. p9 W8 W' k4 ^( y
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
2 k2 R- G* t; u: k! g/ A/ E改为 :7 k4 a4 O  M/ j1 _2 r
$extsub=explode('.', $tmp);$tmp=end($extsub);
2 u/ R$ E+ N; D9 A2 B3 P$ [# I
/ G# h' q9 |6 ~% x4 C% o8 h
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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