搜索
查看: 20505|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
- B" A0 ^6 {# u1 c# u
 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 [5 a" @2 F) J& c
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
, ~/ g5 {$ v7 |0 s5 E, ~  1)将function gd_version()改成static function gd_version()即可。
( B+ S# J" \8 ?& C. n0 H# J  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:' p& O) O3 {! h( A1 ^# i9 ^% N
$p = new cls_image();
; ~' _$ b4 p: O  _% `3 Lreturn $p->gd_version();# Q& T% Z; F9 O, P0 J8 D& [) o
3 ?5 \+ ~3 a/ n3 x

4 S# R3 i+ X' n5 S8 a6 n下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:% @+ X9 v1 o' w4 q2 B! r
安装进程已中止2 J9 T4 F/ V% L* g
创建配置文件............成功% W+ F8 Q9 N8 l7 g0 |! [
创建数据库............成功
9 d: K0 o- S8 ~& P' q( X; K安装数据............成功
' s3 Z; b9 {/ e1 x1 U; o创建管理员帐号............成功
* v5 x* b4 l8 {, s* A" w处理其它............失败
/ A8 E" Y$ q  @  j; F. C1 l4 a" n+ @  V4 _' t! S! U, k/ P
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528* j7 `& L9 t4 _" F/ j: v
无法创建目录,无法创建目录
3 f5 R* D- D* I5 Y/ i解决方法如下:: W' f' w* R! v. l$ |
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
# v/ }& f( H# S  E8 c4 D(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
( u" E  e* {9 b+ E不安装测试数据库一样可用,一样正常,不是问题.....
8 P( F! p, w2 k1 _愿看到此文章的朋友能解决问题; + k! v; p" w$ f

+ \4 G) g9 W+ g4 F2 |
( U! L5 y& @- C8 B! l3 ^+ f. {ecshop如何解决includes\cls_template.php on line 418错误
  }" a5 ~' t3 d3 ~; j
" f* l( T2 J# R$ z! R之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
2 m9 S2 `6 H: T  [: G4 n# pStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418! m" g6 u2 h1 ^2 p) i
第418行:$tag_sel = array_shift(explode(' ', $tag));
4 P+ ^) F$ ]+ L9 }3 w, z+ I; | " l. e5 A) G- g" c6 K5 ?
解决办法 1:, J  y7 `4 Y4 _2 w) O, o
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
2 h' n6 E2 s! |; d5 b
5 ~# Q8 M' N" z4 G4 Z: O$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);7 n' Y5 e( j$ N- n! J. m  V
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值5 Y$ _6 q# K! p, C( ^9 r; O; \1 U
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
" ~' P8 v+ w. z! Q
3 l% e  G2 a5 w9 C: Z如:
4 w# M2 @, g  Ofunction get_dyna_libs($theme, $tmp)
2 ]5 g- d  ?. J1 {{
& f1 Q7 s& E+ _8 o/ g( |) L7 ~  B$extsub = explode('.', $tmp);- J+ T* q6 |, z0 H" K* Z# ]
$ext = end($extsub);
- u  `- M  E5 y( T! l0 y$tmp = basename($tmp,".$ext");* e* S. y( s% a- g8 ]
$sql = 'SELECT region, library, sort_order, id, number, type' .+ a; p. E4 I& U5 f6 Z
' FROM ' . $GLOBALS['ecs']->table('template') .) a5 ~; h+ q5 N. Z" I
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".7 I/ P9 U3 a' W7 w/ Q% Q
' ORDER BY region, library, sort_order';  N& f& ~) ]8 ^1 D  I/ v
$res = $GLOBALS['db']->getAll($sql);5 ?4 N. r+ s6 z* `) j
$dyna_libs = array();
+ S$ p3 n5 ~& u& W* Z2 ~2 o( {foreach ($res AS $row)
( O, E7 N! _/ h{$ K7 P8 C$ o1 w9 M! o5 D
$dyna_libs[$row['region']][$row['library']][] = array() w! ~3 q$ w: o' M9 x' `4 J/ m
'id' => $row['id'],5 b" _3 ]" @& ]) B
'number' => $row['number'],
) P* z0 c0 A% V7 A& y1 U( C'type' => $row['type']
& J+ q4 V0 D0 T2 G6 i0 X);
1 O$ w5 l8 N7 ?8 p}
+ ?2 D# g7 i% V( q9 x7 ^return $dyna_libs;
( \) n, v6 L# P8 ]3 f5 C. m5 W  W}" K, T: ]  x0 y% Q' G5 i4 {
- f+ o8 _+ S% a' Z) |/ @
将$ext = end(explode('.', $tmp));
) S: |$ U* k* U6 G% \: P改为2 P. Z2 x) E$ q$ A
$extsub = explode('.', $tmp);2 ?; V' N9 i$ z4 {
$ext = end($extsub);# m: J: {: F  I! X, S9 m0 ]5 Z
/ r1 x: p) w6 v3 `- m- u, g
解决办法 2(屏蔽错误) :" o/ X2 @) D/ ]. a* O
) L; J$ S* n' e: l
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
/ f2 V( P  m1 J: u+ O! X% c: s) Tphp.ini中有如下设置:! N& Y8 E. R1 j# S8 u$ Y( |9 |& Y
error_reporting = E_ALL | E_STRICT
$ Z. A3 a4 Y! o$ C, V" E9 R% T 4 g( {% Y6 |' ]- X% v
这是说,显示那些不符合编码规范的警告(coding standards warnings)。% h7 q1 i6 `% E2 R% f: I5 }
Joomla其实是建议取消error的输出,如果出于调试需要,应改为3 K, ^6 T/ s/ K/ n
error_reporting = E_ALL & ~E_NOTICE6 C7 ^4 T- n" L/ ?$ C7 w
  p! F. ?4 S5 z" u  G( Z
问题得到解决。
3 q/ x, P6 e1 ^( |! k' @+ w2 z9 P, o, l# O7 X7 x

8 f( E" x+ x- w0 gEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
, X5 {' f$ r5 B7 {* z% ~0 ]2 kphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
! g  k, P/ _7 L2 ^# d( }$ A' }2 T改为 :
9 ~3 v: ?0 S6 z! K$extsub=explode('.', $tmp);$tmp=end($extsub);
2 d& F: j( H, c+ U2 b5 c( t; h
/ n7 O9 z5 s( b# [& c+ b! Y4 u/ V
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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