搜索
查看: 20022|回复: 0

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

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

) q+ m/ P) e5 I5 ?6 B; T& w 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 |8 b8 f; n& X/ b$ H% j  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
$ r, q7 x1 i4 t0 J6 E; I7 ^  1)将function gd_version()改成static function gd_version()即可。! }# U2 T0 ^- T, u
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:- G7 t: z' |! q# b& I/ z& V; U
$p = new cls_image();( y  [) `6 D, \  Y
return $p->gd_version();
  ~8 Y) y, e4 u: [
  G; W$ Q# A7 a3 t- x7 w, j
  P! V# }& m- h" M' C下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
) `! @! i7 A+ U; b- D$ k' N安装进程已中止
9 }: i- H% D- q6 N% \9 r7 [" I创建配置文件............成功
6 ^% b/ L% u" k3 Z& i( @: |创建数据库............成功
5 v/ `) }' k1 G9 @安装数据............成功# k" W1 X) m. j9 n! z9 ?
创建管理员帐号............成功# j4 @5 O& b; a9 b3 s/ r% p
处理其它............失败
, A( C; Z! @* ^
4 X# ?% [) Y! h& N' dWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
6 S9 C% F1 s) e% |' P无法创建目录,无法创建目录
8 j( r# y- H4 t( Z0 x7 P. }解决方法如下:
  ~; f0 c2 Y# D% C9 Q6 Z点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
4 [- E: V# t, m(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
" R( |* D& \) Z, ^不安装测试数据库一样可用,一样正常,不是问题.....
8 ^' r! E4 j- Z- f: g愿看到此文章的朋友能解决问题; ) K# h1 i9 r& T

3 p8 y7 |+ U$ \2 i. B! V& b$ c7 e
) x1 N- r9 n! d" W' c# O0 }4 ]- u9 z5 kecshop如何解决includes\cls_template.php on line 418错误
* `9 O. P# _. Q. {
7 y( t9 m' O" |! G7 [之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:# J* Z8 m) C  y
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418. \7 p4 A# L1 }; Z: ~$ h: x& J5 j' T
第418行:$tag_sel = array_shift(explode(' ', $tag));- ]( ?) P+ d! {7 B) g* {( H

5 q' d7 T9 L6 }/ W- ?1 O. \解决办法 1:
: y; s6 `+ R' e* f5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: + `" ^5 N; g. i! j; g1 A/ u0 n. j( u
7 H6 g0 x0 M- H- X6 W5 v
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
# E$ V8 d6 a- Y; V: `5 A3 e" W(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值* }; ~) @/ c% f/ Y2 E6 X
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
% i2 s$ h/ C" _4 u# t7 [ $ c5 Q1 D2 b+ \+ l/ ~, |
如:* Z7 f1 o% y1 I* M: f6 Q" @
function get_dyna_libs($theme, $tmp)
' h) @' B0 h0 m{+ |! m- V% U# X6 }
$extsub = explode('.', $tmp);
  V" Z# o5 B* J; N% I: W$ext = end($extsub);
  Y, T; G$ n. _- \! r$tmp = basename($tmp,".$ext");
3 d" J& V( t& ^0 i$sql = 'SELECT region, library, sort_order, id, number, type' .' i" v6 d3 C  D/ U$ P5 d8 D
' FROM ' . $GLOBALS['ecs']->table('template') ./ C, n" W. [7 \+ @  Q$ ~
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
' J, G3 e( f! o$ J% \9 ]: I' ORDER BY region, library, sort_order';
8 P9 Y6 p) n( q7 B6 i$res = $GLOBALS['db']->getAll($sql);+ m/ Z! T1 D. [7 c2 d6 \
$dyna_libs = array();
& o# o) z' o( a9 Q2 n( Q1 C: {foreach ($res AS $row)
! S# c4 X/ C  T8 k" W1 e{
8 k( b3 p. {# ]' h! b% j$dyna_libs[$row['region']][$row['library']][] = array(3 n& y, e0 a/ ^3 t
'id' => $row['id'],7 [2 w$ |" Z' j, d9 A4 m, j
'number' => $row['number'],
$ \/ N% K- i4 {9 e; X'type' => $row['type']- b1 e6 j1 P! {
);
% d+ T4 `1 H  o3 |5 U; Y. l8 U, V}# C* ]; ?8 K5 s, o* P
return $dyna_libs;8 E3 N8 C1 `" D+ m
}; n  h3 M* i5 m: B
; e$ s5 h# W( D) }9 e$ ]1 H4 s
将$ext = end(explode('.', $tmp));. e& p5 v7 l* V" T7 w# z1 [
改为6 s- N: [4 q" x+ t
$extsub = explode('.', $tmp);. _# h' D& D1 O' {+ @7 K* D2 {
$ext = end($extsub);
+ F. o6 ?; w9 ~5 D
7 {2 ~+ Q/ A# |8 v( O$ Q解决办法 2(屏蔽错误) :
' S& R: o( v$ T4 @2 F! D " ?/ z6 _1 Z8 u% v4 [/ J/ k' X2 L
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT8 s9 T7 s0 K# N9 a. d  \- o
php.ini中有如下设置:
) H* e" O+ z8 R" h5 ~error_reporting = E_ALL | E_STRICT5 N/ G0 x( r7 m5 I) ^+ a  w, f1 {

8 v$ L: m, q9 x6 N' [4 r. ~这是说,显示那些不符合编码规范的警告(coding standards warnings)。3 h* Z% [6 H# ~1 E3 z0 K' t& f/ U
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
/ t9 A8 m/ x  [: derror_reporting = E_ALL & ~E_NOTICE
6 D: W% H3 ]0 C( F. F
5 f- W5 V, D) N7 O3 j0 k! @# j; M问题得到解决。( y& V* T2 K1 |  v( _; M
7 I5 I: N0 T3 Z  m; v0 Y

) ?  \* {( E1 h; h. w/ [Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line" K$ Q7 m) G, W3 E+ D0 ~0 ~; w
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));- o: n) v& n. V" B
改为 :
" U/ C$ g* n5 p1 v3 T& ?$extsub=explode('.', $tmp);$tmp=end($extsub);
0 h- B) }. m  x1 \9 o3 K: e8 I
9 ^4 j( J8 K0 B/ c* A
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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