搜索
查看: 20214|回复: 0

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

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

1 d5 l' y$ r; H7 a1 b 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 错误2 [: |# X% Z3 t7 g& ^8 j- S
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:9 I) u# u5 H- N4 k9 A9 \* w
  1)将function gd_version()改成static function gd_version()即可。$ u1 V- Z! E6 |1 Y7 Q
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:+ _; |) f2 N8 f" K, ]0 ]
$p = new cls_image();
/ o7 |  x, F, s3 m! \: G$ mreturn $p->gd_version();  j9 Z7 E% U7 l% f

7 L! X  S6 L5 V) v/ R/ z$ T2 t# `# {. l& W$ j( `' j0 D& _8 _
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
$ n/ T8 E. E% _" Q  e6 b2 M( T安装进程已中止
6 v- \9 M3 L. j$ J创建配置文件............成功% a. @9 E; J' I& L" v! p( h2 h
创建数据库............成功  x# @  }; p5 S+ Q8 r1 |' N! i
安装数据............成功6 b/ G. ]. S" b/ ^
创建管理员帐号............成功
) J& R. W+ j4 m! L  n1 l. B处理其它............失败
; ?) l* _! j$ L# s) D
3 B$ v2 P4 q7 Y: z: w9 GWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528! E' E) R) t" F, H" u2 \* V+ f# l
无法创建目录,无法创建目录
: ~, e0 z# Y% `8 B解决方法如下:- y, I$ g% q% \% @6 h0 G
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: # c2 O( m8 Z* M; a$ K) k. T
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
/ M7 X. f  m' o" b& u2 D不安装测试数据库一样可用,一样正常,不是问题....." z6 D/ T+ o2 i0 N  F3 m+ r, K
愿看到此文章的朋友能解决问题; 6 W5 F, n9 ?9 p7 O  c% v- k/ I

/ x  a; M% n0 [1 p4 p
4 |4 L5 k) a" n6 L3 z1 {0 d2 k" _ecshop如何解决includes\cls_template.php on line 418错误
* D) U1 j# E+ L9 c% m  a8 ?) `: a+ q
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
  Z' |7 i( o1 H; vStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
4 q8 @: d6 L- L: C第418行:$tag_sel = array_shift(explode(' ', $tag));7 K! P1 G* w4 y" {
, E# d- u" n! `
解决办法 1:8 [) w* c) @$ J  N7 h
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: 2 n# t3 C& j$ z0 `) s

8 \- N) s) W1 A3 M! V$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);# b: g0 u) ?* ~; W
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
; g" ?* T1 n! Z' ~; T+ [# s同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决2 m: u3 b$ `: n* w$ L' R8 o/ d  u

, ^) |3 J4 V1 [. T& a0 g5 B: N如:
% [3 R' e" v' o! [& M! Y0 U( Vfunction get_dyna_libs($theme, $tmp)
- p: D3 [# X$ S# I$ p# r{
" J/ m& Z3 G! R3 |$ t  }* L$extsub = explode('.', $tmp);: S$ n6 C2 C/ m) p; m8 [% e' W
$ext = end($extsub);
% Y3 p# z: t. f9 L$tmp = basename($tmp,".$ext");
0 `9 H% l3 h& }9 c$sql = 'SELECT region, library, sort_order, id, number, type' .% `% j' Y) ?' R" @
' FROM ' . $GLOBALS['ecs']->table('template') .* \8 H8 W: q  L1 z& G; _
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".9 J0 Z' g; ]; _
' ORDER BY region, library, sort_order';* G( |, x% {/ A6 v* y! R
$res = $GLOBALS['db']->getAll($sql);
! b& B) e" c" g) V% \9 u; p! S$ C+ S$dyna_libs = array();: _* n: q  X" V
foreach ($res AS $row)2 e; }3 ~( [, a9 R% r" l" W' p% h
{
. C  r* u* N& }; _; i% \% f7 e$dyna_libs[$row['region']][$row['library']][] = array(
+ j5 `2 X9 }! s# c7 b9 ^! c'id' => $row['id'],
6 Q& W% K  R0 m) C1 @'number' => $row['number'],
- d+ _8 w3 L: ~( H'type' => $row['type']" ?) `% @4 j4 Q1 K
);
* _+ p, P9 g+ Q8 \* q6 o}# L% S7 ?! y. R9 I1 F; k/ K
return $dyna_libs;3 b) c& t- ^, l3 ^' U! D
}
1 T- p7 h$ h# {1 ` ! \- T+ z! E, \6 G+ J: {3 g
将$ext = end(explode('.', $tmp));& w& D" [0 d1 \: v( T4 u
改为) w; p+ C5 s$ F4 x1 L
$extsub = explode('.', $tmp);
; `! X- a, n$ H$ F$ext = end($extsub);
0 q: d  x3 d% r" ^+ D5 U3 x
8 N: _5 v  I; w2 a6 I, W解决办法 2(屏蔽错误) :* Q) V0 J, Y# w' V
( ]9 X( O5 Y/ i# c, x: S2 g: P9 @, E
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
9 I+ m1 M& j* L/ A% B4 Xphp.ini中有如下设置:
$ P' A/ R( u4 Q! [! j' Werror_reporting = E_ALL | E_STRICT
  t# e# O; l" F) V9 _  a
" h& t0 d% x" }8 w# I这是说,显示那些不符合编码规范的警告(coding standards warnings)。
) N7 \( M' A9 A* V- j& GJoomla其实是建议取消error的输出,如果出于调试需要,应改为' X) z7 V  _" }2 n. t
error_reporting = E_ALL & ~E_NOTICE
: Y! }0 H9 d! t7 M% S$ h 1 @- n: r5 R  G8 v; {& C
问题得到解决。
/ V0 n. _3 w) d( [6 e% o$ c" X+ I  ~8 U: v" u) A
$ B0 O# }% q. G3 a  t4 e, y0 ^, m
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line- C0 E  h$ t. Y+ W) Z: N
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
4 c/ v( X( C" m: P( a改为 :
  W* A3 N/ X9 ^* d3 @' U4 a; ~4 q9 @$extsub=explode('.', $tmp);$tmp=end($extsub);; L) h0 d$ T, ^9 v: W4 f( |. }

8 z5 J& u: P  p* E3 g
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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