搜索
查看: 20277|回复: 0

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

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

" o% e! q/ a6 I$ z# t 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 错误
& i- y5 y- e" j. y5 J  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
7 G; R# _% U, B7 c7 l3 \  1)将function gd_version()改成static function gd_version()即可。
& s2 ~' V  ]/ m# B# y: b1 J  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:  G7 b% X$ K5 E9 S$ i" w1 e
$p = new cls_image();
8 ^( A. ~& Q" K  p/ Hreturn $p->gd_version();
8 T' A  A* K" [. k& w) F
5 P2 v9 T4 h/ K, ~
7 S5 a+ J* }" L' _" L下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:& t- a; Y* D3 o. G
安装进程已中止4 \4 b! }9 t2 ~$ m( M4 \* ~$ H
创建配置文件............成功
) V" ~: H% R9 K创建数据库............成功
' s9 m# ]6 Q9 H$ p安装数据............成功
+ Y$ Q8 G9 |( P( ^' L创建管理员帐号............成功8 m- u/ }- U# L  a( Z9 y
处理其它............失败* I; @7 @; o4 \
9 O* [+ g. b& R# A
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
7 e- f; g7 V- U! i无法创建目录,无法创建目录
3 l. v: C- E6 L+ T% W解决方法如下:
5 J# h; q) c' p0 d点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
7 v; m) I" d0 G6 u0 B3 Q(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。& c6 O3 Q6 g: r7 p
不安装测试数据库一样可用,一样正常,不是问题.....+ l7 H2 \( c( w3 `
愿看到此文章的朋友能解决问题; * g- f! ^/ N' V! r

7 t# H2 R+ d, Y
' A) e# F* n1 w! t) h  W3 c  x8 aecshop如何解决includes\cls_template.php on line 418错误9 h' a& v, ~( j4 Y# P
8 T; O: z4 R6 l" @* G- q
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:: A: a$ I9 |# N/ N. i7 V
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
3 M4 G8 K/ t* c第418行:$tag_sel = array_shift(explode(' ', $tag));
* L+ ]& P, F" d# a+ D2 u% q% U6 | ! M" [5 `7 i9 q8 ?. d$ l3 b
解决办法 1:! S+ P+ E3 Z5 N* x
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: , G4 L: _$ g5 L2 l3 F: W, G1 D
2 ^! d+ ]6 n0 s! q' p" I
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
6 W$ d: u) n/ E, _(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值2 {& {6 y, K. q0 V  T% F
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
9 T$ G) a" w/ `. Q+ M# w% d% B6 Y 0 t" [" L! ^: ^' Q
如:! s/ {4 G" f- M" l( h
function get_dyna_libs($theme, $tmp)
" N- r; K  q7 K( v$ j; e: E{
$ _$ Y( J: V7 e1 T$extsub = explode('.', $tmp);+ d) P" y! r4 m! G1 }2 z; v& o6 Z8 _
$ext = end($extsub);
9 `7 p- Y- x( _: \& X$ F$tmp = basename($tmp,".$ext");
3 ~; t3 \, K2 d$sql = 'SELECT region, library, sort_order, id, number, type' .0 K1 r% s  {3 e: O9 J2 C+ z8 l
' FROM ' . $GLOBALS['ecs']->table('template') .
5 [1 g" E2 _: {4 F% U" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''"., t* T" a# E  {/ ~* u% K5 U
' ORDER BY region, library, sort_order';0 Y0 F6 }5 X2 g( C6 O$ a
$res = $GLOBALS['db']->getAll($sql);/ c& I  x- m" ~# u2 w
$dyna_libs = array();
% N/ X1 X' ]2 r" uforeach ($res AS $row)
- p7 R( ~3 X8 ]8 q{
  z2 }: w  V$ d, r$dyna_libs[$row['region']][$row['library']][] = array(  O8 E$ C  k: _8 q8 N$ q
'id' => $row['id'],/ |) u+ w( O5 X3 O
'number' => $row['number'],3 D. T. ~$ R$ `, e' X9 K; q
'type' => $row['type']) k" A* p& b# }" ~2 e/ e, L
);
% k3 S- A$ t9 v7 q. u0 B7 m}
6 v! P  B0 x7 X% n# r6 R, zreturn $dyna_libs;
+ t4 d0 ^2 E, o, u}
0 l3 X) `5 O$ j $ S7 S- H4 o9 S
将$ext = end(explode('.', $tmp));: @( s; T/ u% }4 O6 S
改为
5 S; J" C4 i+ I8 J% y$extsub = explode('.', $tmp);- S2 u2 R* M- W0 k# B# ]8 m
$ext = end($extsub);- v4 V( E: u* P2 u+ g* @

  s: ^# C4 W0 T  E- i8 n解决办法 2(屏蔽错误) :% {" W" K' b! k% o. r
& O$ Z+ L: h( _& a! ~7 r/ E
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT( u1 l0 p) B! S& o. k6 H# B
php.ini中有如下设置:' H' R) S- g7 E5 |8 A6 E% R6 ~
error_reporting = E_ALL | E_STRICT, K/ J- {  Z$ O6 m- m1 j6 B6 Y& @
7 x& N8 ~' U1 z8 T+ p8 t
这是说,显示那些不符合编码规范的警告(coding standards warnings)。: H; C2 G! N. `$ [# i1 b
Joomla其实是建议取消error的输出,如果出于调试需要,应改为" m+ F* `' i7 O) y8 H  B
error_reporting = E_ALL & ~E_NOTICE
0 q7 M4 ]% d1 z6 b. V+ D
% i9 d" W7 x( ~3 r8 r& c问题得到解决。/ g9 ~$ E4 f3 B- V* @8 C- E2 z
: |% D  m- l: h4 f2 d# M
! g: V, Y+ f  v2 k1 E
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
% I7 Z. Z2 G4 Lphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));& W) G9 N: [7 O9 h2 p% C
改为 :9 z( k. o7 N, g
$extsub=explode('.', $tmp);$tmp=end($extsub);3 D! P, ~4 @/ w3 t. |( ?

! h% E6 E+ k# Q
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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