搜索
查看: 16471|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
# B. h/ I' t) W7 y7 d
 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 错误
0 k2 {6 k7 }' T- x  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
  B3 p% P( f$ b+ u/ @: S  1)将function gd_version()改成static function gd_version()即可。
  F* Z3 l# Y0 v4 z) ~, j" R  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
% G& N  _( P% _# M0 t$p = new cls_image();5 D: }9 W: l- F- o) A
return $p->gd_version();( Q- @) P' s/ O* B1 L, U- W9 {
% |& D0 c6 n6 G& t

8 z3 s+ ?4 O4 F$ i0 \( q! T2 i下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:5 m: T$ _+ G# ^
安装进程已中止' t2 e) i/ T/ x4 Z7 c2 a) U$ v
创建配置文件............成功5 V) H) X4 Q; T! B* N
创建数据库............成功) n& p3 S8 t* s- b  z: {5 z
安装数据............成功1 x8 }$ J1 p# s& B. H
创建管理员帐号............成功1 j# @' ?1 p" o& m6 Z
处理其它............失败6 r$ {7 g5 U& P& l  |  `: a4 T+ p

& L! I: U9 w: x  ^+ E# CWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5281 C9 O# c3 w/ ?
无法创建目录,无法创建目录0 P# I: O. N# T% X
解决方法如下:
( R) K- I5 p4 c7 B! h$ Q点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
# t, X! O1 b$ s  I5 p7 F8 E/ o(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。  b$ Q0 T. g% Z( J% V
不安装测试数据库一样可用,一样正常,不是问题.....
: F; T2 K' B, m1 v. ]7 }+ m  L愿看到此文章的朋友能解决问题; 1 {* p0 Z# w. i0 }# R! K
5 p. ~1 ~' ?1 Y7 Y- x$ N0 u9 @

2 V2 ^  Y1 F& Wecshop如何解决includes\cls_template.php on line 418错误
! o% s# j/ t. L" `( f+ C4 }; f+ K, c% J8 ~" F4 b! ?& O
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
* N9 h+ n- w: K. _% I2 x) f7 V+ mStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
3 R* I% O" Y, T4 Z3 w第418行:$tag_sel = array_shift(explode(' ', $tag));
) A" y+ Z' b  F  A% o
( @6 G0 Q) ^0 z) s) \8 @9 L解决办法 1:
! s; n! W- W6 Z* u( c) Q! u5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: + x; w) L; j( P# W0 k0 Z$ r) ^& K- O
/ ^8 ]/ t9 X+ {$ D1 ?2 ~' @% E. e
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
2 s& ?6 X- o1 C6 }* N(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值/ g* J7 k' P1 X* H" t2 [0 t
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决+ l' g8 {7 D7 F# t8 H% ?

! v, g$ N1 p* i" A0 s如:
0 x$ |* o& O7 i( K2 Jfunction get_dyna_libs($theme, $tmp)$ n5 \8 ~" d- j: v. c1 r  X
{
' V, u' V5 o: j. X2 Z$ _$extsub = explode('.', $tmp);4 E5 G9 T, G* ?8 Q8 [
$ext = end($extsub);
; e. @# e9 B! V5 Y9 B4 C4 H9 K0 p$tmp = basename($tmp,".$ext");
7 x! D, X( X1 K, M$sql = 'SELECT region, library, sort_order, id, number, type' .
* Q/ g- v1 r  H$ ^  L1 j" _' FROM ' . $GLOBALS['ecs']->table('template') .; h# [) B. d& \. W$ r
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".# e, K! {" c* ~
' ORDER BY region, library, sort_order';" X# X# t  ?/ t( a( i5 m( s9 [0 a, P
$res = $GLOBALS['db']->getAll($sql);2 e. P; y9 e$ H& l5 Q
$dyna_libs = array();1 }/ T7 k" |4 L' v. `( L0 N) I
foreach ($res AS $row)' f  f1 E# v7 T( {1 |) A
{
4 Q& B9 ]. C% P, e1 G* H3 s$dyna_libs[$row['region']][$row['library']][] = array(
; x9 |$ y" q: {5 M3 l' Q- I'id' => $row['id'],
1 k3 k) D. z; Y$ _, ~- ?' ^/ n'number' => $row['number'],
+ z4 v3 b  E9 k'type' => $row['type']. I, S3 e9 I' f
);
% G, @, r$ w1 j}
* \( P/ ]* t0 H: Y- n7 k" a! ireturn $dyna_libs;- A8 l' ~0 |  v0 {3 ?
}4 h" e/ u; C0 k

/ U9 p& [: j$ m- J  Y1 w* c! \将$ext = end(explode('.', $tmp));) p, s& x1 R3 d8 C  ?' }4 r( j
改为4 l4 m+ L/ {( T' g0 X* Y
$extsub = explode('.', $tmp);
" W) s1 y( a- x. D) `" r6 r$ext = end($extsub);
; A6 D# r* {$ }4 b 5 K" B8 |! H+ W: m* \  Z4 J
解决办法 2(屏蔽错误) :
3 B$ ~! i8 q9 H) W# |# r& V: Z & t% X+ q8 Q& \5 E) M' P$ Q9 F
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
$ n3 f* v! ^# s  A/ k5 k: Vphp.ini中有如下设置:' P3 D; s: I, t: B$ K2 n3 }
error_reporting = E_ALL | E_STRICT
, \2 U1 \( ]1 }+ ~1 b5 ^ * i$ g# {7 @8 \7 a* q5 w% M
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
7 ~" t* B4 u; S8 x) l# K" u5 y% JJoomla其实是建议取消error的输出,如果出于调试需要,应改为
& e0 t- G& }# r$ I' b: ]error_reporting = E_ALL & ~E_NOTICE
* A. W& P! \0 x3 ]6 z. s4 a * O# c, {' h; b: U6 `
问题得到解决。5 A7 C- q; [% {; l1 y
& E, K- W4 e5 _6 f
' D- j8 C3 |" z, S
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line* z8 O) _& v9 O: b6 E4 @  h
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));; }( e0 M- H1 D
改为 :
9 K, _2 `9 _; C, S, \9 j7 H$extsub=explode('.', $tmp);$tmp=end($extsub);7 \, g3 p# x- N4 c1 g& K
& S# L$ ]) j, `4 c9 u4 v
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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