搜索
查看: 20211|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
" B( R# e( N+ R7 y' g+ e$ x3 R
 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 错误9 O1 t& R4 B9 D8 s0 _8 q. g
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
0 R/ ?) _+ s/ q) }/ A, h; P  1)将function gd_version()改成static function gd_version()即可。
: E) _% q* L7 t9 m, _7 g  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:2 x, l8 |% F9 E4 R) u- Q6 ^* g
$p = new cls_image();) S9 I+ F$ G5 ^  F
return $p->gd_version();% k; {, e! i& K
! n' Q$ h$ y9 t4 {  n
& c. L' F$ ^% u
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
6 R8 Z2 s/ V/ ^/ i0 C6 l9 u安装进程已中止3 `1 H, F( o  n- S% z9 _- [* A
创建配置文件............成功
) J7 I7 r( M( S5 K6 h( m2 J* u$ C创建数据库............成功( ^0 N& h/ Y3 C, q7 D
安装数据............成功
4 I! A- Q6 r! q; U! g) @创建管理员帐号............成功* B7 O1 V5 L. H7 C+ ^8 W( i) O+ z8 h
处理其它............失败
  {0 M7 {" q/ V9 ?
" W" r5 V- o6 UWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5288 d% n4 u) ?" L4 K
无法创建目录,无法创建目录
4 R: F" c: e' E6 i- K解决方法如下:# D0 V* @  H  _( z: j3 O
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
( w2 A( j% l8 N(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
1 K% H0 L3 I8 f8 _, e不安装测试数据库一样可用,一样正常,不是问题.....
+ K7 Y' G$ j2 Y) i0 k愿看到此文章的朋友能解决问题;
$ u) _% q5 [4 G5 A' l  S# w8 C2 ?' p* e

# M5 \8 u  E+ q" h  j. mecshop如何解决includes\cls_template.php on line 418错误3 o+ @& n$ v0 a; W& w" R$ P8 U1 j
# D& N  b  T* j# P
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
* l: ?7 M( z0 |1 m& q  _5 f+ ~Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418) E' b# p- k1 T: Y
第418行:$tag_sel = array_shift(explode(' ', $tag));
4 l) z& C. F- V, o* Z( W0 J: X / e# \8 k& A4 m( W. z3 ~
解决办法 1:
2 S# u, w4 X( v0 b4 U5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: , N; o  d3 i+ h$ r
; {% t3 o: g# U( C# O- l5 Z' R
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);) ]; _6 Z0 ^- w8 i% t) N1 k
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
% v, X. o' r6 d5 \* C同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
9 X- b( J3 H5 M$ q& `- H
5 H# q  r4 h5 b0 E如:
2 K6 p% C8 K. s, \0 s; hfunction get_dyna_libs($theme, $tmp)
4 ~3 a: |  |3 \{* Z5 |* K" M  \2 K. @+ b  l
$extsub = explode('.', $tmp);
  s1 u& f, A1 k3 d# }- P$ext = end($extsub);' o4 o$ T: ?, K' y2 [
$tmp = basename($tmp,".$ext");
: h3 Q  N! j, @9 v+ i$sql = 'SELECT region, library, sort_order, id, number, type' .
# ]8 `6 n2 D1 k. m' FROM ' . $GLOBALS['ecs']->table('template') .8 S4 @5 o. ~6 x
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
0 r9 d4 p. m, o% h& o' ORDER BY region, library, sort_order';
& l# `) C/ m& u- U4 m) ~$res = $GLOBALS['db']->getAll($sql);% G; ~+ M. Z$ o, M" _( t
$dyna_libs = array();
8 _9 k  R3 a# b; O1 ^foreach ($res AS $row)& G' i% O' ]. S
{" T2 C7 H: I6 X* s
$dyna_libs[$row['region']][$row['library']][] = array(- M8 W$ v: z' d" @
'id' => $row['id'],) u3 }# C5 p: |7 q
'number' => $row['number'],
3 b* H' T# j) J. _" |1 k'type' => $row['type']0 X; C% m% }1 g$ s/ d5 D
);
# ^. r) k1 T( F, [/ C7 ~, v1 H: l}- y* w3 A9 j1 E/ [& V
return $dyna_libs;
, l- N8 H) w# Z& ~$ p+ ?}* D6 g* J6 H" M, q5 h0 `

2 j7 ?, y7 c! r将$ext = end(explode('.', $tmp));
$ K: s$ ]8 P: J) v- ]改为- o/ A7 I; {* R# S. P
$extsub = explode('.', $tmp);: n" X3 ]* _: _1 U; \1 T
$ext = end($extsub);- Q) v- g: ]) t% \, R& h
5 v$ f3 s8 P( Y* t
解决办法 2(屏蔽错误) :' g4 y, F) l' `% W
2 B" S: N& T# V* q2 `, Q1 H6 ^* c/ r
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT" l1 Y  V$ z) G: f
php.ini中有如下设置:' S6 v$ h  ^: U! E9 G. T1 Y! f0 V
error_reporting = E_ALL | E_STRICT
  A3 k' k( p2 P! v9 g* k1 d, H4 _ ) h/ l( Y" m% u5 A. t4 M
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
" i4 y* i, ]/ L% n8 ]Joomla其实是建议取消error的输出,如果出于调试需要,应改为
, d) D5 c, v8 berror_reporting = E_ALL & ~E_NOTICE
2 Y; ]& M" n* h% q! v* X + Y5 A( t7 ?9 V! X& \
问题得到解决。
- G' }* b+ M/ v! b9 w3 [
# f0 R1 Q/ o3 J6 k* R9 L; o$ f1 H& g0 q+ g. a
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line+ Q/ ]5 p7 M0 @7 W( }4 I
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
1 V# @" K" w2 D/ P8 v0 }3 k' y改为 :
+ x3 j0 K1 b; u1 w$extsub=explode('.', $tmp);$tmp=end($extsub);" {1 ]1 t; W5 p( v

6 n3 ^6 h9 }$ o" U
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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