搜索
查看: 20194|回复: 0

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

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

1 n( h2 F6 U" p& ?+ {/ ?1 S 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 错误: \+ ]! p# w5 N2 Y( m3 X3 Z. N
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:4 ]6 `8 s; C0 d% R
  1)将function gd_version()改成static function gd_version()即可。  ]0 `7 c) {) [6 f2 j
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:& S" h# G' ^& M2 s
$p = new cls_image();6 ~8 y. a) B7 G. l9 }
return $p->gd_version();
8 E0 ^$ U; G6 _* X* Y- p+ W. H6 ^- V  N. w$ _7 a
6 {! ~  X" ~+ D, x$ v
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
6 q0 G+ [1 R- x& G- y  g3 }3 z, C安装进程已中止+ k& F" t& u1 i5 e. Y$ M& E
创建配置文件............成功
! _! O% |8 ]/ g创建数据库............成功
2 {1 t% I. R3 n! X安装数据............成功/ U+ W, n& o: m5 s# }
创建管理员帐号............成功
( w) R" ^* u1 a  v% \/ o+ n! R处理其它............失败
' L" R5 ~: T5 i# f' S5 a
& w/ I" h5 L. _" L, ^: y& q& sWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5285 C/ H4 _) e: [6 `- X+ \2 P
无法创建目录,无法创建目录
1 y# G8 d0 o7 z4 h9 U  \解决方法如下:
2 l& |8 i) h) I0 }  F" o点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 6 B: |2 h! E# `% L
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。5 C6 F* o. u( [* k7 a# u
不安装测试数据库一样可用,一样正常,不是问题.....  o" A0 A* i: M4 [+ N5 O
愿看到此文章的朋友能解决问题; 0 B9 [8 d6 G7 t8 U+ N: k
# W8 X$ ~3 u% J3 h- P

% f: U: L* W( a+ C6 K4 n4 {ecshop如何解决includes\cls_template.php on line 418错误
! l! K; l1 I. c' K6 z1 m) g1 Y2 K9 C* E; d; Q* `- w8 ?
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
5 u3 y9 L* B3 ]Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418# a& h3 v( |/ A* y
第418行:$tag_sel = array_shift(explode(' ', $tag));7 o3 x9 w) Q5 P
( p1 p+ N, q; ^$ Y% M" u4 l
解决办法 1:
1 B9 W; H: C2 Z5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: ) ]8 e8 y' m0 k$ y9 X+ [- ]

2 u6 L) V1 x) k' R. H; D( R/ [3 E$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);0 E! U! l- r+ C' d) F* B3 y1 C
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值# g3 ~/ s- W% K8 q6 }3 e$ g
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决2 C. u8 p2 e% _( @, g- Y% P
, J5 q: ^0 B8 ?) W4 {, T
如:& u' s: B' {0 j1 R  f1 d
function get_dyna_libs($theme, $tmp)
: S# E+ m# B% C& Q8 S8 m4 F{6 d4 _1 j! ~. ^# V6 z
$extsub = explode('.', $tmp);
+ Y0 C6 f4 f# O# P0 L: w$ext = end($extsub);7 N4 k( A5 Q3 F6 o! u6 s/ F9 S2 R
$tmp = basename($tmp,".$ext");
$ n# ~) ]7 e5 A7 O$sql = 'SELECT region, library, sort_order, id, number, type' .% C% U6 L$ b& g; ?, J, h
' FROM ' . $GLOBALS['ecs']->table('template') .
. u  b6 Y6 s3 E, [8 e" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
8 l3 W2 t1 A! P' ORDER BY region, library, sort_order';
) o0 d" \5 U( a9 z$ o$res = $GLOBALS['db']->getAll($sql);- K/ [0 j1 w( ]# q  \0 _
$dyna_libs = array();
% n4 L% {) T; e3 c3 Cforeach ($res AS $row)
5 w- T. l' _$ ]& a+ F+ `. Z& G. Y! G{7 C) W. q4 K! S( K" y
$dyna_libs[$row['region']][$row['library']][] = array(
! x7 M9 J0 T" @7 V! E" q'id' => $row['id'],
3 G  M: S) R' G: n! [- D  `'number' => $row['number'],
, q$ Z) ~: k, R2 T8 f'type' => $row['type']; j) ?- E/ O6 i5 v( Y1 z
);
! s6 @* i+ S4 \# A7 p$ X0 M}
* g* `: ]- k# o+ j* o/ ereturn $dyna_libs;
( w  V8 v5 }$ o- @2 B2 c5 B}8 Z& l& y) W# X! ^4 Q, |* M
/ k) ?5 t+ t- j- n4 [
将$ext = end(explode('.', $tmp));
$ V; _! R9 y+ [( C% F改为- l0 A) S+ @1 d, h- J" e
$extsub = explode('.', $tmp);
3 G. U, i9 H/ y1 ^. p# @: {$ext = end($extsub);7 U8 Y2 L  P8 Y
1 h7 A- u. f% U. i" h' T
解决办法 2(屏蔽错误) :
/ n" q( z1 U  E; ]
, L& Y9 G, T7 _9 a7 ^或则如果这样配置的话: error_reporting = E_ALL | E_STRICT6 i9 }( \. S; E4 U# q0 g2 R7 o, j
php.ini中有如下设置:& H* _9 K" s2 x8 T3 [% _' \
error_reporting = E_ALL | E_STRICT( U% M2 g, J9 b

3 j$ i& ~/ ~' a( ]" J这是说,显示那些不符合编码规范的警告(coding standards warnings)。
, K2 f. W" r+ ]# u& N" S9 t0 b) k. W) lJoomla其实是建议取消error的输出,如果出于调试需要,应改为0 f- Q6 h# s4 r# @& y" P; |
error_reporting = E_ALL & ~E_NOTICE5 x/ ]1 F. o3 K1 o& T6 }4 v' |+ |

9 k( w" b5 Y! |. U- S) s& y问题得到解决。4 ~5 k% C/ F4 E4 v- H- ~# V
2 ^% C! b# f6 q" ]8 p! n( Z$ |" A

+ `; ~2 L& p" ^: Z) c! q  h- MEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
* D; k9 `& N! `. k( D* A' R$ Fphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));5 o5 ~' v* G5 O: |$ i9 J* X
改为 :
4 `/ \2 [1 i# u  ?* |$extsub=explode('.', $tmp);$tmp=end($extsub);# S  D5 b  f0 D8 D- B

$ _1 H5 s6 V+ G; v/ j( h  C
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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