搜索
查看: 20477|回复: 0

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

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

8 x- V( O' ^- c1 J' \! z 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 错误
6 s% @. O# ]/ Z+ p. I  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:+ R$ Z; v7 G) z' _$ G- K; M
  1)将function gd_version()改成static function gd_version()即可。/ e) C; A; `- Z
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
9 Z$ R) i' [, h' g" n$p = new cls_image();
* D( ]& F3 N( d0 M" ^4 ~return $p->gd_version();, w# ~9 N% p9 ?. B) b( r4 E# q
6 E6 N& b. g7 M( E+ N

$ b! G6 H' r) `1 l. F下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:+ ~# C8 A' n3 @7 V( e
安装进程已中止2 {8 m5 C1 e+ v) C7 g
创建配置文件............成功- W9 L: Z% p( {$ Z
创建数据库............成功
6 q- k+ y; n0 r1 z安装数据............成功
: I1 a# Z- o' g, b创建管理员帐号............成功# v2 }* S& ?; v7 O
处理其它............失败
. Y* w$ B5 L: f, ?5 p: d2 B
2 F) D' x" T/ z# X+ D% n0 d/ XWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5289 h! C! y4 F# [- m5 L# }' U
无法创建目录,无法创建目录
* _1 ?6 P0 G. \: \2 f# n/ v解决方法如下:: t! m5 b# E2 G1 k# a
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
" g1 C, r" k& Z3 }(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
: u9 J1 J7 J& C/ |不安装测试数据库一样可用,一样正常,不是问题.....
$ b( p# L5 ~) x. O$ K  D7 x愿看到此文章的朋友能解决问题;
$ f" z1 B9 ]  h; H! l
: X- i" Y  }0 c) ?
% }! m( \# C7 Z( Q7 Kecshop如何解决includes\cls_template.php on line 418错误; J9 F' l* I5 O1 Q. ~9 p
* B" S: q( e7 N* z0 ?
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
1 v$ l8 l9 ^/ y3 @3 YStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418. ]. ?7 }1 t' p4 o( L5 O/ N& m+ H
第418行:$tag_sel = array_shift(explode(' ', $tag));
" h9 F3 ?2 Y4 t2 u) y
4 o, h% B$ w* O解决办法 1:
% Z4 i- _2 Q4 i' _* P& d2 w- ?" S5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: * ^+ H7 K2 Y# M1 W( T9 p
) q6 y) U, t) s! W% X/ W! I. r: e
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);; Z* ]% w: r: r; }$ d
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值  q2 i  Q1 a8 H/ T; R& B8 N
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决: V: E+ N) W  p/ y7 k1 H! P

; n; X2 d" ]: `如:
- s( w' _7 Z+ v$ |, e- `2 M, m" Z( pfunction get_dyna_libs($theme, $tmp)! O( w; T9 P. M& V3 d( |: H
{
; u" Q1 Z2 X) z4 E1 o+ V4 z. \$extsub = explode('.', $tmp);' T$ C$ _) I. a/ \* X6 l$ A, |
$ext = end($extsub);
) n6 ~$ f2 n" j# R$tmp = basename($tmp,".$ext");% p0 [1 A" `; O
$sql = 'SELECT region, library, sort_order, id, number, type' .5 T; @2 D7 N* M3 N) J6 a
' FROM ' . $GLOBALS['ecs']->table('template') ." p2 E; i- ]0 I7 D: P- k4 f
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
5 C( T0 Q5 X7 E6 h0 R' T$ y' ORDER BY region, library, sort_order';+ s0 H- q, Z6 [
$res = $GLOBALS['db']->getAll($sql);& k' k/ E6 O  @2 a3 M, y
$dyna_libs = array();
% z( L% ~- K6 j: hforeach ($res AS $row)
9 ~$ t$ {, k) j( h/ g' @{1 G( {% {! T8 G( y
$dyna_libs[$row['region']][$row['library']][] = array(
  R8 g0 ?0 Z2 A+ h'id' => $row['id'],
7 z& }% V% G8 p4 F/ k, M1 b1 P'number' => $row['number'],
; y6 S* S+ A/ \& E9 ]$ |; F! s, ^8 ^'type' => $row['type']" i8 w( |4 q5 q6 I6 T
);
2 j* N* m& [! y3 [# r! m}
! g7 A; O# m8 T. W: N2 Greturn $dyna_libs;
. e  ?. j3 O1 G# S}0 H5 i4 o$ k$ A! ~. d$ G
/ C$ J' ]7 ^7 ]' ]' f
将$ext = end(explode('.', $tmp));0 }, ?' }% s2 r# V: w& O
改为$ X1 k  u( `4 {9 [
$extsub = explode('.', $tmp);7 Q( P5 _* O8 v3 i( k  [' f
$ext = end($extsub);# @5 s5 ^/ M( q- U) v7 }

1 |* G) I$ f/ `# P+ b: i! ^% ?3 b解决办法 2(屏蔽错误) :
8 {4 x' T  K. e' e. U% S+ s " W/ a% N+ P- |8 U& K8 x+ M
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
" [4 H  ~* V/ H& zphp.ini中有如下设置:
# |) F/ L& O# g& ~; serror_reporting = E_ALL | E_STRICT  o4 P4 Y4 Y! _6 J! b6 ]
/ @* E& k. Z% u8 }
这是说,显示那些不符合编码规范的警告(coding standards warnings)。) F0 Y; K$ H% q9 a
Joomla其实是建议取消error的输出,如果出于调试需要,应改为. Y& v$ d, @3 a+ ]+ }/ A
error_reporting = E_ALL & ~E_NOTICE
/ a7 J$ q4 i& \! e$ m " x0 \, ^# B3 ]" v" ~3 e; V( v
问题得到解决。
$ b* q& x1 B- P( k* S3 X# G' L- G" n! ^3 k9 S6 ~* @
! e# ~9 Y% b- R- \
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line+ _  u/ Q- ?6 T- n& a
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));, L/ G2 S9 y* V8 ]' \! s
改为 :
+ a3 r0 p3 i: Y& I1 h# C$extsub=explode('.', $tmp);$tmp=end($extsub);! W0 K0 k* Y$ I5 E8 Y. J* e
- m% [3 z7 T2 ]7 L( j
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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