搜索
查看: 20394|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
8 d, P' ]4 ]" a
 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 错误
" O4 |3 h( Q2 m; V  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:$ h1 C5 _: g/ N+ p4 t" k; i8 n. b8 a
  1)将function gd_version()改成static function gd_version()即可。
; w* Z) O7 s$ W4 q3 \4 e  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
5 p" R; U5 P# `, u; |. V$ a2 E' t$p = new cls_image();1 S/ z4 t4 F% s3 @
return $p->gd_version();
  y! ~' Z: _$ q/ }6 C$ Z
9 U" v7 q* S1 z6 U' q% ]/ n" J) C/ S" A( K' I
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
) l7 e) P1 m7 W' P6 z5 ]安装进程已中止
- {/ s" {3 }9 }! }2 L创建配置文件............成功
' R0 j1 K: g9 F. [创建数据库............成功/ r: h, ]3 T% a- W% H
安装数据............成功
9 i  M1 ?* j( P+ k1 W$ X3 J- a创建管理员帐号............成功$ A! B/ k/ l, v4 F- Y
处理其它............失败0 j( o7 V% Z6 ^% [: ]1 `9 S
7 @/ c5 n0 u$ I+ H! f2 D
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
# X; Y- x. O2 N& `无法创建目录,无法创建目录
& }' F8 \8 H- m, a3 C解决方法如下:( e6 a+ E' J5 O" N- Y9 e) i" Z. L
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
! m, N8 R* y, M* `# g7 ]+ C+ q(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。7 [1 L, u; s2 {3 k6 k
不安装测试数据库一样可用,一样正常,不是问题.....
' c+ J1 {* @; e+ B8 c5 o9 ?愿看到此文章的朋友能解决问题;
7 D, x$ G/ t, }% z1 |, t+ c* s. m! A
: h3 y+ S4 J0 f9 J" L3 ?
) G# P! |$ N' Hecshop如何解决includes\cls_template.php on line 418错误0 _+ U/ s# j$ ?( v8 U

$ O1 T, O  Z1 Z* \+ _之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:6 E, x6 s9 k5 o2 O' C
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418( Y9 p! p3 b6 e  s
第418行:$tag_sel = array_shift(explode(' ', $tag));; n7 V3 R! M; i3 t& R8 _

4 |" ]8 M1 K6 m: I解决办法 1:/ P. W$ Z6 \2 p+ h5 h7 q% }2 ^
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: . m  _! m9 c- G: B. S- ~2 |
/ T9 w9 o' x* R% k
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
  a, E! `7 J" x: ]( }9 _$ j(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
$ c3 j+ C, a: ]% s同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
9 x( Y+ x! O* J! J- q: N5 s  e8 h& g
, G3 a$ i. t. o* W" B9 f如:) U7 V% K7 z/ P2 ^* L* T! p5 w
function get_dyna_libs($theme, $tmp)
2 x/ e0 X" e! C{8 g! ?; z7 V- x' h0 l
$extsub = explode('.', $tmp);
/ Q* y& a6 {9 v9 ^" M/ e' \' d$ext = end($extsub);
# ?: Z! a9 F7 U9 ^$tmp = basename($tmp,".$ext");
0 _  C% _) \2 D4 F$sql = 'SELECT region, library, sort_order, id, number, type' .
3 k( `  N" c3 k* G% @- P' FROM ' . $GLOBALS['ecs']->table('template') .
2 |# g* D! l2 x6 z' U8 W( U( E" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
: W5 f6 Q% E0 F  T& `, J9 J; F' ORDER BY region, library, sort_order';) X" k, z& _' W, x
$res = $GLOBALS['db']->getAll($sql);
0 X( b: t* h* g/ L$dyna_libs = array();, l3 H! l& a* V; t
foreach ($res AS $row)
7 C; m- t# i+ x{) d2 S5 t# a) |( j
$dyna_libs[$row['region']][$row['library']][] = array(5 ^4 ?- ~" f! {; q1 v
'id' => $row['id'],- a3 c7 }; y$ F; g( Y
'number' => $row['number'],( k; }' W% x4 M* }4 i% U8 O' N
'type' => $row['type']
. t, V1 Y% d7 u1 |: Q);
' F& T' y& [. d5 {# Y! D6 O}3 U. E8 M$ H) o) q- R1 b, L. T& s' r$ C
return $dyna_libs;. H5 y" j) u, D- E' v
}. D3 F% k+ h& f+ }2 o6 F9 p
- y$ W! P  u9 n4 f0 Y( a) v- |$ p, f
将$ext = end(explode('.', $tmp));9 z. ?4 w$ {. A1 \
改为
. ~( b) V+ c+ g4 V: A$extsub = explode('.', $tmp);, m3 t( i& _5 x4 r6 N7 N
$ext = end($extsub);% W( z6 s; |) w$ J* d

" b( L9 p9 S* K4 t解决办法 2(屏蔽错误) :
- R+ y1 G' R+ n4 f+ y9 }9 b$ s 2 X$ i! a# |: F2 g- u% [
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT5 {7 i0 M- a, l& X4 X* z
php.ini中有如下设置:# f( k+ N& _1 B6 d
error_reporting = E_ALL | E_STRICT
( F& N" S* D' O' P( l
( [# v2 j" k0 L" P这是说,显示那些不符合编码规范的警告(coding standards warnings)。9 o& T& H: ?, @4 e
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
( M4 q8 v5 ^9 f3 A4 G5 Ierror_reporting = E_ALL & ~E_NOTICE
) g4 R2 V+ {- f! I$ K4 O0 m 5 @4 A1 |: r9 p  Q: I
问题得到解决。3 S. j9 N7 N) Z' W0 p

8 y# Z' {. ]. ?5 o% r1 h% W  D3 i- T% }5 ?* a# v" H& K
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line* k: r+ F. T% E0 g9 U2 O# Q
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));" p" ^5 D0 X1 }
改为 :$ x/ t* k7 r& h: S. H; d8 C* U" K! e
$extsub=explode('.', $tmp);$tmp=end($extsub);& h$ S3 Z$ _: Z1 Q9 E0 c

3 q& U7 n$ U7 n- H' P" q: r9 I7 S
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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