搜索
查看: 20379|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
# d5 L  a; l. g" R% \& m+ p
 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 错误1 k  x# [0 P  d& y) d, B( p. [
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:9 d6 p# e9 D0 w0 z" M" p4 Q  P3 C6 m" Q
  1)将function gd_version()改成static function gd_version()即可。$ y9 ~% Z8 G3 s! J! }. H* }1 t
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
+ `* E- H/ ?  M0 R$ T6 R8 I$p = new cls_image();
: p" l! s2 |+ g0 Mreturn $p->gd_version();
% C* F6 [2 {( o' ^) H) N' U: l  t6 ~* ~& D; d6 I. s

0 V, G" b. Y' {7 @' ]) X2 _3 H下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:6 O8 }1 m3 L/ i4 V% c) v# S6 v( S
安装进程已中止
3 |6 B5 v6 G/ `; {+ m! w3 {创建配置文件............成功
6 U! v5 |- o/ `5 k创建数据库............成功
% C5 a$ U. t% X! q  ?安装数据............成功
3 T5 `8 w  Y( v+ i( J创建管理员帐号............成功
( B+ ^. ?4 F$ N( I- K处理其它............失败
8 K7 P& u8 ~( a2 b- ~; x; R( S  F# o9 S6 n! M$ Q; Q2 l! p
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
9 C! Z3 c  ^1 U+ M无法创建目录,无法创建目录9 U) b* z8 a# Z5 R
解决方法如下:/ Z. c: C' i3 D: o; W
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: * E. A1 J; x& L' c' t
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。' H* c4 `# }& h
不安装测试数据库一样可用,一样正常,不是问题.....
; L7 M( F' i9 ?5 A( b  [愿看到此文章的朋友能解决问题;
. R( i; d; e2 t  X/ W% e
) C8 {3 Z2 I6 }% T6 `% j5 R2 h4 X+ z4 A& J# S
ecshop如何解决includes\cls_template.php on line 418错误9 ?( |% n0 a% h0 w0 S, E
7 e- i- R7 H& m6 s0 P8 {
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
; F3 M) [6 ?% h4 x- k$ G/ WStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4183 m6 a; }$ M  D- y; {, C8 E
第418行:$tag_sel = array_shift(explode(' ', $tag));! N- `& o/ C, Q5 ]0 ?7 b0 g  l% d

4 O' T& \+ B0 t9 Q0 T- C+ g解决办法 1:
9 _) L: E) e' R; y  o0 a5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: ) J% [" l$ z8 R) A% H; A
9 L9 T8 J* @* L1 U
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
$ ~7 }' \  U2 }(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值" c( L( N" ]! p5 u. b& f, W
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决, ~3 a4 n$ {5 p. p; k
8 O. _$ p, f; c" \% t; F; p4 c
如:, n, i$ t) t7 ?( D8 m' f) w
function get_dyna_libs($theme, $tmp)" d0 v, @! c3 l& J! ^0 ?% \6 |
{
2 T7 u6 o, b2 d" |% c3 q$extsub = explode('.', $tmp);
" l+ m/ I- {! C* e. K; m$ext = end($extsub);1 V; `6 ]$ [8 b* M: e& W
$tmp = basename($tmp,".$ext");
* K' `2 I: V1 x. W3 w+ m$sql = 'SELECT region, library, sort_order, id, number, type' .# o1 M) Q: x' P% |
' FROM ' . $GLOBALS['ecs']->table('template') .
6 F* q& I% ^, K( l" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".9 M$ {( j. Q; ?
' ORDER BY region, library, sort_order';4 O! r9 d: q5 ^5 b; G
$res = $GLOBALS['db']->getAll($sql);
- q5 R8 [2 P5 M( @5 ~$dyna_libs = array();
- J& F, M2 A! |! q' O0 w! h& j3 O& x& o- [foreach ($res AS $row)
; g6 [( W# i4 A- I  ~{6 M9 f& j& ^; j
$dyna_libs[$row['region']][$row['library']][] = array(
, l' P" d6 b. k'id' => $row['id'],( S8 N' I; d+ z6 H0 p
'number' => $row['number'],
, y1 O1 Y8 K) r0 C7 A! W3 G'type' => $row['type']
: j" r& q/ \- U' j);. G* h  b: f+ H$ X  U( q
}7 r  M; {$ e( E1 M' P4 j6 e3 W# ^, ~
return $dyna_libs;
; j/ a4 Q9 F4 [, b: F- v7 ]}8 L- W& v4 f# W
, q, v% }6 n/ l* v) C
将$ext = end(explode('.', $tmp));% c  l+ Q* z# @1 B. h8 U7 s+ r% s3 x; y
改为
  `$ w) {  \$ O- y$extsub = explode('.', $tmp);
9 I& d; G' M  U+ f& B1 G! s$ext = end($extsub);+ z- _! W" c/ a. G0 \0 G- r

" n0 j0 |9 A% Z解决办法 2(屏蔽错误) :
+ h6 f' s- p1 u- m
+ G' F# I3 R! t( \- w3 S7 w- n或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
( ^3 C  D. _1 ]& J, S* aphp.ini中有如下设置:" H; c- Y1 _' i+ @9 g
error_reporting = E_ALL | E_STRICT
! a1 o: v2 k" @. S5 M: l+ D
5 i1 a8 ~3 I, `- _( B& \这是说,显示那些不符合编码规范的警告(coding standards warnings)。
" i8 z; H( T) K' C; \Joomla其实是建议取消error的输出,如果出于调试需要,应改为
# M8 e" `( s' Z5 Kerror_reporting = E_ALL & ~E_NOTICE0 ?# V( L. [4 S! t  I
' K  j; }, v9 W+ U8 a; `/ n
问题得到解决。% Y1 Y; s) q" }9 I- Z$ z
) t, ?* i5 v+ L. e2 e5 j( x. q4 b
) @9 |; K. R2 h* z" I
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line' A' r* R* ]1 W: r+ D
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
3 @9 [2 D7 f# z' @+ @) B改为 :' s) x" _5 ?1 \' d* q5 ~
$extsub=explode('.', $tmp);$tmp=end($extsub);7 a7 K* W) O9 `; M/ F( h; ?1 g

$ M7 s. t, ^  k1 y1 ]% s) b" o( N3 p
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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