搜索
查看: 20268|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
# d% m; w& q) J9 ]6 W* c! C* \
 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 错误
! l$ c( y% ?' d! L5 _) v4 `" @. w  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:! {2 L* g4 e: ~/ d3 B/ U
  1)将function gd_version()改成static function gd_version()即可。
( K, `8 b- m: i2 u  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:% j4 o) W8 h  k" M5 l# D  P& @
$p = new cls_image();, [- u+ N& Z9 A0 e
return $p->gd_version();. [9 \3 u5 D. x$ D3 G1 Y: M
2 T, ]0 f* C7 [
: J4 m/ L+ E0 A& e( X6 P
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
" J8 J3 }$ y  j7 y; A安装进程已中止5 ?0 L& [' g) v/ d" s
创建配置文件............成功) s/ t2 `% H; S
创建数据库............成功" }' p' I3 D" D/ A, n1 h
安装数据............成功
% G% m! v# k* A6 H6 e" F1 w创建管理员帐号............成功6 d1 S2 P9 }5 Q+ g! t
处理其它............失败' Y3 s, c! O# i6 a  w( k

9 p9 ]8 m, K. b3 T3 cWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528) b7 ~/ e+ j6 v8 h4 ]
无法创建目录,无法创建目录" k, c+ g0 B- _; {; M; X% `
解决方法如下:' u9 b  F2 N0 c# G( l9 \
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 0 I* e9 Z7 W; ?& t3 \- p# ?
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
$ \# d* h$ d* e7 O: r不安装测试数据库一样可用,一样正常,不是问题.....8 a; d- A7 f1 }  Y8 V
愿看到此文章的朋友能解决问题;
9 ]& y* b& M4 T- u9 c6 h
- n# Y5 Q1 S( `- ?
* k+ A7 e, \  i# F( v/ }ecshop如何解决includes\cls_template.php on line 418错误
% I) n/ e4 t7 _6 C5 V0 E# [1 U1 @1 N3 D1 w) Q- ?! i
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
1 k6 ^# I+ d: R8 b* z9 R; oStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418* F* ~  k3 Y  P  J! y
第418行:$tag_sel = array_shift(explode(' ', $tag));
# p6 }. l$ K2 x0 R  r8 t ; [1 L0 r% o1 M0 l4 r
解决办法 1:
+ c+ U. h! n4 Y9 s5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: " l6 J* \- ^3 T( k

6 N% Q" }2 h. B1 B) S0 {$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);  C  x" @/ t8 k  Z( E" l
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
$ N0 v& @1 }. a' I' m4 z同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决  c. _0 ^$ {9 n

& g" z: [  K, I. D* d6 {: U如:
+ J! k  E" M6 _4 [: H6 B4 Jfunction get_dyna_libs($theme, $tmp)5 Q! K4 s# x, ^: Z
{6 t0 K2 {% S# R$ {4 ?2 z! P" u
$extsub = explode('.', $tmp);7 g' V8 M' j0 M8 g
$ext = end($extsub);
$ B0 E# s( i% O) O( Q% @) s$tmp = basename($tmp,".$ext");; t7 [2 c1 I  V
$sql = 'SELECT region, library, sort_order, id, number, type' .
( n# `, S; T  C+ |' FROM ' . $GLOBALS['ecs']->table('template') .
: j7 O" v: O% P  J; b" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".0 `6 p' i6 x1 U: Z9 h
' ORDER BY region, library, sort_order';/ H( N+ \, k2 Z3 ]1 M
$res = $GLOBALS['db']->getAll($sql);
9 z3 q+ y! r  h% m. ]. Q7 M+ z$dyna_libs = array();9 q$ K9 `! G' n" g9 L4 Y
foreach ($res AS $row)$ y  {# ^3 ~0 k4 y6 ]3 G
{# L& _, c( q4 z# ^- j5 e" n; ^  w
$dyna_libs[$row['region']][$row['library']][] = array(1 P0 i, Q. b$ F6 x
'id' => $row['id'],
7 Z/ `2 h# u7 U'number' => $row['number'],; |5 F4 U; @0 h+ S  a, n" I$ I1 T3 o
'type' => $row['type']
! }  m5 G/ M) I8 ]7 `9 s: s& X);
. W4 R9 J# o7 C: k0 `}7 q" t% f- p+ b7 Q- _( o, G5 L4 D
return $dyna_libs;
# f& U5 v, @, V}
* x* }0 n3 g9 ~8 l! {4 x  m 6 J7 J! M3 \* [) x! O) J
将$ext = end(explode('.', $tmp));/ J; w4 s5 A- b% b
改为4 u4 P8 {# j3 m0 }/ ~
$extsub = explode('.', $tmp);
, I# u4 ^( n8 [' j$ext = end($extsub);
2 H/ Q. N0 ?" v3 m6 a' _" G1 k6 [5 ~ 8 g% x' B( j, U# }  _/ C3 U; _$ @1 h. Y
解决办法 2(屏蔽错误) :. ^! l! G- |" r1 y; R
6 K. q# J# n6 u" d
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
( o% W1 M) n% _( Qphp.ini中有如下设置:
3 H# c6 p- T( j4 O) e  S0 m# p2 werror_reporting = E_ALL | E_STRICT
% ]6 ~5 E4 l" i' E # e# i9 {' s3 Q3 s. f
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
8 }6 I' E' Q: u, d( bJoomla其实是建议取消error的输出,如果出于调试需要,应改为% O- a! i+ z+ [$ P+ d
error_reporting = E_ALL & ~E_NOTICE7 W- s2 ^6 o( {3 `; w" r
# Z# n4 U6 k& {# N1 d  K
问题得到解决。4 q0 C1 t2 G5 {6 n0 _& l1 o5 s, y
  I7 ]. t- \6 Y$ B# `1 r
! P, d; [2 B+ s
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
& H9 O% `! A7 q/ o1 ^php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
* e* n9 S( U! G/ V改为 :. v% }4 \9 {; d2 e
$extsub=explode('.', $tmp);$tmp=end($extsub);
4 f3 R* I) J# i0 r9 F2 q  T! H! [4 G& o# q) }
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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