搜索
查看: 21072|回复: 0

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

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

$ V/ f, Y7 P; i! h) f' Y3 Q9 ~9 R! R 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 错误
/ s" k0 r. g8 |. o  K! f( ~2 l  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
; k  C+ o( N: [- N7 K( Y  1)将function gd_version()改成static function gd_version()即可。. p% i+ U, [3 G. \0 S5 k1 b. x4 `
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
. w# J3 F! F. g+ g8 R3 x3 n$p = new cls_image();
' ^7 ]1 N& d! W# r, s) Freturn $p->gd_version();
$ M& O- V5 R) c0 u, j  X' Q( S) I4 C. j) _& {) P% W

& z: B8 _' B+ i6 q下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:% q( l! ]& c" A5 P8 u3 H" D* p+ p% s7 b% w
安装进程已中止! X# ~4 E6 ?  ^! [
创建配置文件............成功# t" N: W% `$ D0 B' k2 W
创建数据库............成功
, E- n% J% G  B+ q安装数据............成功+ `" V7 E. j% j4 m( U9 W8 h
创建管理员帐号............成功- ?6 t( r8 V+ Y# x, w% l6 y
处理其它............失败/ D" `$ p5 ]0 k  R- D5 w/ z
: W7 U' Z( \; X5 [( i2 z; _
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5284 R0 }( j, s( ?+ n" ^$ `! K
无法创建目录,无法创建目录; F! @' U. q: t. P- B: T" y
解决方法如下:$ R0 i$ z: y' y0 J# W% j. p4 I2 ~
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
. x: {: s) C/ w(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
3 V; P2 r' b# k, C0 H; @4 h, B不安装测试数据库一样可用,一样正常,不是问题.....
4 `4 x9 K) y6 r7 R* |愿看到此文章的朋友能解决问题;
6 [% B: q" O3 f( M8 e, U- }
. |: x* j8 x5 x, m
( o0 `) T  p7 ]0 Yecshop如何解决includes\cls_template.php on line 418错误
7 f3 X2 i9 D6 Z4 K" k/ p; O4 ~2 l3 {6 ^" E- ]# J% R+ ~8 k
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
1 S7 w/ C+ m3 [* N+ _4 d8 ^" F, `1 \Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4187 a  @5 i: P9 u# ~8 A$ _1 t+ @
第418行:$tag_sel = array_shift(explode(' ', $tag));
3 m3 s' C' U- p ' O% `8 f  ]* T9 V( x
解决办法 1:
1 H  z1 T) X9 f9 p# P5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
8 f8 g! P5 \8 A) H! z: q" ]6 @& O5 \
5 Y$ P. g, z* ]! o, y. F- m3 Y$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);; j+ c5 l) F$ Y  e1 O( K
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
( v* _8 a: A, a# u同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决4 U' u6 ?! @" {
. z* V1 D' x4 S, q6 {: J" O" e
如:
0 A4 `: p* t& v7 \* t& [' }' |function get_dyna_libs($theme, $tmp)+ U. @& W- Z) o
{
, N0 j) G* @: o) L  z$extsub = explode('.', $tmp);
* H$ G8 b: C- I$ext = end($extsub);
2 f" k1 X4 y& b9 i2 `# a$tmp = basename($tmp,".$ext");
1 E9 o; }( R& B- b% B% t0 W7 E$sql = 'SELECT region, library, sort_order, id, number, type' .
% C# h- F! E5 a& \! i  r4 f$ {2 G' FROM ' . $GLOBALS['ecs']->table('template') .
, g: w5 e0 Y6 V' h! q$ i0 h4 e" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
8 S* b  g) F: Z3 m1 }' ORDER BY region, library, sort_order';+ o- R7 O% w! I1 [9 c) W9 h& W
$res = $GLOBALS['db']->getAll($sql);
" x( L% p) K# W1 s4 @$dyna_libs = array();: ?! d) i5 o* \: r/ S% q/ I
foreach ($res AS $row)
% ]$ ^1 }+ A' S9 d$ g4 v0 L0 \{/ X* _& Q1 u  R. I; L
$dyna_libs[$row['region']][$row['library']][] = array(' \, h' A4 C/ W( m: o
'id' => $row['id'],
5 h% `# m; j, D# R- d. p'number' => $row['number'],
( G/ a4 E, H% W# W" V'type' => $row['type']) M6 f9 N) {( Z* D- W+ i. C
);' b7 I# F. h9 v& X' u  B; N
}7 A) a9 X% ^$ d. d2 o8 h
return $dyna_libs;
* ^7 \( _2 L4 n+ K}0 d2 g% o9 |- j

+ i" s+ J; J  Z( g: [$ ~2 P, z将$ext = end(explode('.', $tmp));
6 p- N# I1 m! E改为
5 k% L% m* F$ Q9 y$extsub = explode('.', $tmp);/ x1 T7 P  {/ U9 A0 r/ x$ f
$ext = end($extsub);
9 e6 j7 u$ P5 p: Y- V5 y . D  p. N- ^2 }0 J! V0 y
解决办法 2(屏蔽错误) :
* A# v% z# e5 d2 E ) t: v2 d, U" z; i
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT( |8 V+ L( J1 C6 U5 A
php.ini中有如下设置:
# b( I& O( X/ M% A+ \9 R. w. Ferror_reporting = E_ALL | E_STRICT8 G( l2 h5 P& x" q

  l' {# j9 ]8 o( f& w2 e! ?这是说,显示那些不符合编码规范的警告(coding standards warnings)。
2 M3 e; Y9 S8 E' q2 BJoomla其实是建议取消error的输出,如果出于调试需要,应改为
9 x, P: C' _! O* jerror_reporting = E_ALL & ~E_NOTICE
5 j) m% f9 h9 j- h . O7 b* h8 r! O6 \9 X" n0 b7 J
问题得到解决。
4 \' p! T0 f9 D4 W& x/ R( {9 t- h( e+ @0 ^

8 Y. a* X; \( U- Q; TEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line6 m( b4 J( ?1 y
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
& P0 l: u. }% C6 L改为 :
* B1 |3 v% L! {0 p( L$ C' ]# m$extsub=explode('.', $tmp);$tmp=end($extsub);
0 E' e8 g4 r% D2 \; Y9 E
/ [9 B, a. {1 E! M' _
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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