搜索
查看: 20375|回复: 0

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

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

7 ^+ M3 f6 {/ _# ] 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 错误
/ }# V1 E) F" ^0 U) m  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:: A, H9 s5 m; `
  1)将function gd_version()改成static function gd_version()即可。, ~+ y9 H; R1 e6 w" Z7 I* r
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
9 T2 h% W8 `. f) _$p = new cls_image();# X; l' u. {( y# U8 X' i+ k! \4 Q
return $p->gd_version();
9 b- a" q6 Q* Z/ F9 g6 {1 C2 {7 E  R1 G3 u1 Q+ @/ @

& W- ?; T2 t1 T) C+ e下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:4 `$ R3 O( L& T, T" _
安装进程已中止
4 Z  F. F6 h" r创建配置文件............成功8 h+ d7 T1 r0 D5 n
创建数据库............成功
1 o3 x* T9 ?% T% e3 j* T安装数据............成功
; G$ g# {& L" M! f创建管理员帐号............成功
3 }, k6 p& ]0 Z8 g9 Z处理其它............失败& }! V! Q; P9 |& t/ r% Q& k9 [. b

& D  S5 g, [' i9 Q2 ^5 l8 q6 oWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5283 F2 N: }3 F3 U0 b4 V, G% F, T
无法创建目录,无法创建目录/ h2 I$ x1 q, |0 I2 r. i1 q5 n
解决方法如下:- \7 |& {/ u) U* q0 f( \# C" S
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 0 o8 c7 q: c0 ~# j9 n
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。. N6 ]/ o  _- V. L* E+ ?
不安装测试数据库一样可用,一样正常,不是问题.....
0 \4 K7 J8 ^% W5 P/ T+ x愿看到此文章的朋友能解决问题; 1 e7 @$ a' H* p

  H( {8 M6 U* H* V5 k& n2 q( w; o  y* W8 y: {0 R
ecshop如何解决includes\cls_template.php on line 418错误9 b* C, m: ]! w6 E) |

+ ]0 E; K% ?  _' U之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
7 f0 j- ~% P) q# z2 }Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418" ~5 l" g7 Y5 Y2 J7 |1 W+ i$ |2 w; J' S
第418行:$tag_sel = array_shift(explode(' ', $tag));( I1 O. V1 U* _, {& B

& J. e0 I' B; k% ~# I. t解决办法 1:' Z# Q& ^& U# s+ m& Y
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
* ~# Z( z1 V+ A% j: u9 i6 j: a
- ~  L) R- A! Q, p$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
* i9 k0 q- X( f7 ](实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值0 Q/ d# H0 A7 R: Q7 `
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
, w: f! ~* W0 H8 d+ k5 p1 K7 ~
. n) Y5 G5 s/ g$ S% u5 H如:
  z; K& H- e$ X3 V6 ~( q7 cfunction get_dyna_libs($theme, $tmp)# g( H! {. Q. g0 T! i1 r1 [3 L. ]0 ~: D
{
9 b) Z' E, o3 |: u$extsub = explode('.', $tmp);0 p( @3 i  Y' a
$ext = end($extsub);
3 d4 c8 b5 f% e- t$tmp = basename($tmp,".$ext");7 K# C7 I% J" f0 {6 M3 M  K) n  K
$sql = 'SELECT region, library, sort_order, id, number, type' .: x/ C- A3 i6 K
' FROM ' . $GLOBALS['ecs']->table('template') .
' H# L; X1 L2 j9 ]" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
/ @5 l" C1 n; Z- V' ORDER BY region, library, sort_order';6 d" d+ {* E  ^) A$ S
$res = $GLOBALS['db']->getAll($sql);
! Y* x; d1 Y/ D$dyna_libs = array();
5 \# x2 E* T" A& D" f. Dforeach ($res AS $row)' D1 K8 @$ z  u) T
{
% i: _9 O5 P- m  g) ^$dyna_libs[$row['region']][$row['library']][] = array(
* G4 Q( k3 c) l* ]* j'id' => $row['id'],0 P& h  E" M9 K9 ~: S; X/ e
'number' => $row['number'],
" O8 K3 }9 n8 y0 m1 n: O, j! @5 ]'type' => $row['type']
* F0 {' F! g  T( H6 e5 H+ |8 [6 `" O);0 d. p% k/ K! q% B; L7 ^" t
}
6 e7 }# k- Y4 ^return $dyna_libs;, z6 }4 M& B0 L; M: O1 g+ ~+ e) Y
}
, R1 k- U9 B7 ]" x- w! Q/ C$ F
7 n* s  y. _9 v7 T9 ]将$ext = end(explode('.', $tmp));
! z& S" p7 i$ d2 o/ F改为  m3 W3 a7 `3 O+ r3 N; v
$extsub = explode('.', $tmp);+ y% i( j+ a" M3 V) \5 Z! O
$ext = end($extsub);
8 n7 q# b4 K& Z# {
% v+ S( I7 g6 O% n* V解决办法 2(屏蔽错误) :
1 u  L0 W  d- `- n; E( S6 Z5 g  x
8 T* @0 f3 N& Y或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
, P$ i' [: _& A$ Kphp.ini中有如下设置:: P( O: i3 j9 z
error_reporting = E_ALL | E_STRICT
  Y9 N& [. X  m) ]. j
; Y. Y' j- b# E7 T这是说,显示那些不符合编码规范的警告(coding standards warnings)。
0 G2 P' K; v! }5 Q; T4 d8 mJoomla其实是建议取消error的输出,如果出于调试需要,应改为7 c8 \' X) Y" }0 Z8 o* l4 K
error_reporting = E_ALL & ~E_NOTICE5 a# j% ]( m4 G& O) w3 n) }- z
1 Z+ `  ^8 M) i6 i7 B
问题得到解决。9 @5 I$ O6 J3 T2 k- H6 o
# f: b# P. ^& _2 l- R, d- [, G

' D/ a" r+ Y% W* s. u5 VEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line/ x! N0 ]0 @0 U0 W3 g, M
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));8 G: K$ G# o8 {. z) ]( X  M0 I
改为 :# t& ~7 v7 ~7 s1 z8 z* o6 v, l
$extsub=explode('.', $tmp);$tmp=end($extsub);
: x& a+ X* n: t9 H5 b8 q  M" `
* I$ N7 \" u+ x( E- {4 J
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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