搜索
查看: 20494|回复: 0

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

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

; N7 g" z2 a" X. W; C! |, ^  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 错误2 n- S( F: H9 Y% q/ M; C% \8 T, e' Z
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:9 i& h( I9 w2 b* P" ?$ Y; E5 |
  1)将function gd_version()改成static function gd_version()即可。
, E6 j2 B9 J4 A  n4 g) ]8 N' \  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:% X) g/ T  @4 @' A+ [
$p = new cls_image();3 H5 O: _9 _, {3 Q8 o  w
return $p->gd_version();
' t! C) X# Z/ `$ ?4 x: F& }, {$ i/ G) Z6 i

0 z1 B- S. I3 [) |- I4 I$ _下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
7 Y7 r$ w8 v: n* h安装进程已中止. V8 W1 ?4 {6 ]! \7 B( S, T0 i6 x
创建配置文件............成功/ L" Z. |3 I+ N1 f
创建数据库............成功
& V7 I; O6 Q* w. |( F/ Z安装数据............成功1 S" M: z' l3 e
创建管理员帐号............成功
$ ]" U" w9 F3 u2 z7 e$ T, c处理其它............失败+ ^8 d1 C  t' b( u+ U# T( t, z
7 Z2 s/ u8 |- L: Q+ F
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528( ^! O) C( r; p$ k4 T+ }
无法创建目录,无法创建目录
' O+ @1 d7 X7 d: s2 J解决方法如下:
) {) M! b. K# ?/ m点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 7 W' n  h1 g2 b. l5 j. d7 D; t
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
6 m" v  R' g7 g' n; p0 m% H不安装测试数据库一样可用,一样正常,不是问题.....' a7 \# `& U1 c2 u1 {3 f5 K' D
愿看到此文章的朋友能解决问题;
1 P4 k( e/ C* }- ?" ]( [" `; @9 M' h  l4 N

+ a/ J! M/ a# g% q+ T1 w/ {ecshop如何解决includes\cls_template.php on line 418错误! q) M! N, p  t. `" d

. {  K2 ^# P1 d9 J+ ]之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
0 A5 J  O5 L* [& e' f0 wStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418( j: ^6 {% z/ T3 g
第418行:$tag_sel = array_shift(explode(' ', $tag));0 c6 P% D2 q) ]. U6 F3 S1 f0 _
/ r  x) \0 Y# ^9 p* D1 _; }! q+ ?7 w3 j
解决办法 1:
6 x% f% N) Z1 ~# \3 q. d/ c! }5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: 3 Q2 N) c: u# I- w

' x3 A. d. I2 S( u0 ~7 U( [$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);) l" }+ S; s1 d8 M9 s7 r
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
+ a$ j) X8 y4 T4 L' X同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
. w. i: ^2 y& K" o# F4 x $ Y, T: ]( y; P: l/ G' p6 O
如:
# Y4 _8 t" m  C' Y; Mfunction get_dyna_libs($theme, $tmp)
9 }: t1 _2 u  s{
/ U+ k2 V0 W% w; ^& ^2 c' J, I$extsub = explode('.', $tmp);
2 Y5 g3 I+ ~  N$ext = end($extsub);
+ _8 O- f+ n9 F/ n. Y+ W* R9 N$tmp = basename($tmp,".$ext");7 i' e7 o4 ?7 M1 j7 _
$sql = 'SELECT region, library, sort_order, id, number, type' .
% n" @2 r7 D* K' FROM ' . $GLOBALS['ecs']->table('template') .
- R* T' `7 V& c5 Y6 T" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
! ?  s/ A1 S3 E9 T. n' ORDER BY region, library, sort_order';
' Q) t+ x) n% P. q6 W) y! `, p' [$res = $GLOBALS['db']->getAll($sql);$ c) `5 _/ B- t+ _
$dyna_libs = array();
  w. p" M$ m  t: ?6 Dforeach ($res AS $row)
1 _4 s# l5 W/ e4 m9 }2 s9 O{
; F+ m- I& Q: [  n# p$dyna_libs[$row['region']][$row['library']][] = array(
) s" W8 L. f( V$ \'id' => $row['id'],
& U: [" ]; `5 T'number' => $row['number'],
0 b- _( `- e; W: A'type' => $row['type']
  N; c, x! n; n# G);
$ P6 [6 n! g8 U  S1 a}
+ G7 ~$ W( b% yreturn $dyna_libs;& ?2 q/ e+ U- `  N( t2 T: j1 b0 p
}, |# A( m( m1 E4 _' A
' W) r: ?$ }/ n& q" J
将$ext = end(explode('.', $tmp));' k2 F3 C# X0 f' }6 u
改为. m- F  t. N  n# V' d
$extsub = explode('.', $tmp);4 ?* i, m6 Z/ @4 @  h' M0 @6 d
$ext = end($extsub);' W3 }, P5 e* O' s9 w

/ U0 u) i9 t: s0 T解决办法 2(屏蔽错误) :
$ h: s2 W- s; y3 h7 w- r5 T / @7 G! g$ u% |: l# C( v2 A# |5 U
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
1 v' g1 h( ^7 Y7 k- mphp.ini中有如下设置:
9 t( t6 |( }4 r. \error_reporting = E_ALL | E_STRICT
# n# Q0 l/ {7 q9 ]* p: K. W/ W  d) i ! q8 c7 B/ a, g! f" {
这是说,显示那些不符合编码规范的警告(coding standards warnings)。. \+ C$ z5 L, _& J' N) h
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
9 A' V, B  n2 l4 t3 N: H0 derror_reporting = E_ALL & ~E_NOTICE* H8 r. r: c3 J8 @" J6 J
+ N3 o4 J$ a( N9 V0 M, ~) p1 e
问题得到解决。
3 W2 \3 L4 a4 I) w5 ~' D/ k! \9 W' g$ ~  }$ |! W' G' z
% I. p, B8 L; _' W* o5 i
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line! U9 M$ F3 n; d. o& P3 s7 m
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
# h* G9 U3 B' q; p/ W7 f- m改为 :
2 v* P! y6 V8 Q$extsub=explode('.', $tmp);$tmp=end($extsub);) ^+ G7 a9 E% Z$ I9 N

- s* W. z& r$ g. L5 b5 F
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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