搜索
查看: 20437|回复: 0

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

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

$ g- |" y3 N! U+ _ 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 f: a3 D3 \0 z# f% G6 j  j0 z/ h0 @: p
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:; F, W3 L& W- o+ F7 w- y
  1)将function gd_version()改成static function gd_version()即可。" ]7 e4 m' t$ u* I8 a
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:6 Z4 w0 X! ^' e% q1 R  L# n
$p = new cls_image();, p3 Y4 E. r& m5 u
return $p->gd_version();0 \8 @* C* z% D

4 V5 d+ V5 h: s( u; Q8 O
6 R# I2 Z8 x% T* X# @0 e7 \下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
* U3 o2 p+ V) {2 e' F7 T4 O安装进程已中止; c7 J& l. W$ X# p& Q
创建配置文件............成功
; {8 ^4 n0 M% w. ~2 Z4 j* Z6 O0 y创建数据库............成功
$ B$ [7 y3 o0 W8 H- n% `安装数据............成功
- r* r7 G& @! q0 l# B1 L创建管理员帐号............成功' X9 J! i3 \9 i0 `  O% t
处理其它............失败
2 f, m0 j% K, h
6 B! z# m! s9 @+ |# n( m& ?3 tWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
/ b3 V  D5 z  ^2 b/ L6 T. L; \" j无法创建目录,无法创建目录9 C2 L+ [: M# v5 q% E0 ~/ K
解决方法如下:# C) A( ]1 K1 S$ N
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
2 c4 x/ p: O8 l0 L" C  G/ B% F- e(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。! \4 x1 s5 Y! T2 m* R
不安装测试数据库一样可用,一样正常,不是问题...... T/ W) n% e' `
愿看到此文章的朋友能解决问题; 4 E' D& K% W5 {% _, x; l. m
" q% N* |  Q' E) r

; |7 [+ i% }" }: z* ~5 m9 V- oecshop如何解决includes\cls_template.php on line 418错误
; b! N/ Z* Y6 ]& U; d) j& m9 p. w8 b, ~1 n: k  y. g2 `& `1 `
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:: n: [, U8 V% ^1 h* T
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
, A* ^# f5 i) m9 u# O: _% L2 M第418行:$tag_sel = array_shift(explode(' ', $tag));) }4 o, ~+ |, e2 q9 q

/ y+ f1 s, S4 e; C% A解决办法 1:
3 g/ J, u" ?' P- N5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: 3 J9 E4 J; g- X0 @$ B6 o

! n8 o) F* q+ G, l" N" d% k$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);2 k& V# k. m1 M
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
& v; {7 [$ h+ c6 w  [1 P$ ~同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决. f% w$ L& U7 Y' I4 f4 b( G

  O5 ~& Q5 w7 X+ P" p6 g如:
# f* c" O5 m  dfunction get_dyna_libs($theme, $tmp)
0 m! {+ l6 [1 v{: z. \7 p# B1 Z, N; L
$extsub = explode('.', $tmp);6 L5 a( z5 Y: R, T
$ext = end($extsub);1 G/ @$ {: l# L0 \$ T4 I2 a
$tmp = basename($tmp,".$ext");
# `. k4 K( d# b* H' K$sql = 'SELECT region, library, sort_order, id, number, type' .
- `" b$ }( O& m' FROM ' . $GLOBALS['ecs']->table('template') .% x& q3 q& ]& m5 i& B- a: N
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".% g9 c) `1 v. I! ]
' ORDER BY region, library, sort_order';% y7 V# R" u% d: u
$res = $GLOBALS['db']->getAll($sql);
: j# A# y- m0 p9 B7 J+ x$dyna_libs = array();$ ~1 g0 N+ y" ^" S5 {
foreach ($res AS $row)" Y( z/ p' J0 `- D, z
{
5 j$ e& m- j6 d! Z9 Z% H$dyna_libs[$row['region']][$row['library']][] = array(
- l# ^  L) Z0 @! Y" j) y7 u'id' => $row['id']," N* I7 \4 ^) }
'number' => $row['number'],. b9 t: e0 J( |
'type' => $row['type']6 b0 U' B. j* O8 ?
);2 z) H' A: j9 {! |
}$ u/ r, T2 Y$ M" B  e  C
return $dyna_libs;
  g( Y- p, P9 o; _6 c$ P  T}
7 C2 O7 y0 E' Y- {  k  S& b$ o/ S 6 X: H8 B( [: P# F1 m. C/ L: o( K
将$ext = end(explode('.', $tmp));
& ?, ^* {# Q: p' M' T$ h改为
. ~# c( k8 l5 S& o. O* a$extsub = explode('.', $tmp);
) i% ]& C; P" f, W3 ^6 G$ext = end($extsub);* p. [" @- ?# H) x! @' v

1 f2 H$ F5 X  J( b* V7 i解决办法 2(屏蔽错误) :0 _9 Y8 p; I: S

' D2 t. q3 ]- i" G5 _或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
) o5 d6 T& K& B+ zphp.ini中有如下设置:
+ F6 Z4 W8 R2 D6 t$ G8 Serror_reporting = E_ALL | E_STRICT) @7 y& n* y  P, q" X

# s& J0 v# O* e7 E9 I) r这是说,显示那些不符合编码规范的警告(coding standards warnings)。! I, C( C5 G" s! q
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
( t' T' m5 F: ]+ Ierror_reporting = E_ALL & ~E_NOTICE4 i; M  I% J- M

+ \0 Z1 O$ b! B4 c$ @2 O问题得到解决。# @* F' X  z& s1 z* @" K

  V: |& e, G) |+ D) w+ }2 w/ {( }) r
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
7 o" O( H$ f1 f4 c+ jphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
6 T+ c8 ~: C0 m9 O2 l  ?改为 :
* q! O2 j# S4 v; I$extsub=explode('.', $tmp);$tmp=end($extsub);8 m" u# L0 s( x6 V0 D% _7 L+ h) W5 N

  P6 m8 A6 U. E7 n8 T
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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