搜索
查看: 20329|回复: 0

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

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

1 {. v& l1 |+ K2 t( D7 {' t" A% M 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 错误
# _- K+ D% U; \% h( Q8 ~- ]8 W  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:, y" V' k6 t# X$ M! e
  1)将function gd_version()改成static function gd_version()即可。1 T' s% R( A/ E# i5 R
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:. `' ~, [1 B4 \7 L0 J  U
$p = new cls_image();( C* \$ [: M6 n$ V& [. T0 e
return $p->gd_version();
; U% b" y- K/ `1 ^* I# D# L. p6 Z+ K& M, A
9 \$ M6 I! u  C4 t3 p3 N
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:9 d" t, A8 A  i1 ]% c' x
安装进程已中止
4 `+ G# b  q! _- y  d5 E创建配置文件............成功4 }1 W* R' _! p! S& k
创建数据库............成功
# l) D1 D8 {7 p% W/ A( R# k1 z安装数据............成功
. n3 u7 R; l- B3 L7 q6 d0 t创建管理员帐号............成功
/ O5 R" ]4 A; D2 B( \( E+ \0 E+ h处理其它............失败: Z" w# e0 |8 R  I
& n' Z1 c7 F) b  d# i) G
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
! i' w$ x$ a9 e& E" o7 m" e无法创建目录,无法创建目录
4 J+ n8 {3 w9 K4 H2 }解决方法如下:) k* G0 T/ ?5 |# ?7 y- e
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: , z5 A, n' U' G0 z) M  }
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。; K- q0 f! X+ F, V9 I
不安装测试数据库一样可用,一样正常,不是问题.....
* A3 j  I  m  t& s& K愿看到此文章的朋友能解决问题;
1 v* q( D* M8 I4 N. ]8 D) a
0 w$ _2 c$ W4 |1 J( I8 _- l% G# h4 D5 ]0 l4 k
ecshop如何解决includes\cls_template.php on line 418错误
0 s4 P0 w$ h' I3 p. k
+ I% @: p3 ]6 K5 z9 ~之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:' z- K& X# z# f: s' T- R3 R: d
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
# n$ c. b+ T8 \" ~6 p4 i' G第418行:$tag_sel = array_shift(explode(' ', $tag));$ {4 z  D# ~# n
  G3 \0 }2 D! _6 o2 ^7 s7 s
解决办法 1:
& l% J- d" p8 s7 M5 v2 n5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
( P, W9 B* H# e* L2 @7 Y
2 `& \( ?7 L7 C; _7 ^$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);  l, H' L. D  q! o
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值0 t9 l1 y! f2 s
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决. W3 u1 Y8 [8 M( d

1 c: o3 s& V1 z7 Q9 m9 q如:
* S8 U7 W0 a2 i# r! Ufunction get_dyna_libs($theme, $tmp)
- i, ~& t9 \. |, U- D1 y& X, Z{+ x& X5 o1 a3 {
$extsub = explode('.', $tmp);+ D/ |# z6 k) ^' S" x3 {
$ext = end($extsub);5 |& @  X' h9 C7 r/ \
$tmp = basename($tmp,".$ext");
- O5 b) a3 p* K9 g' v+ r5 K+ y$sql = 'SELECT region, library, sort_order, id, number, type' .
; ]. \: v9 M% r3 ^3 S$ w) _' FROM ' . $GLOBALS['ecs']->table('template') .0 l6 J. c' b+ C* M1 e/ I* ^
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".( f- B- d- n6 }& h* f8 G  ?
' ORDER BY region, library, sort_order';
7 C1 p1 m. G2 }; p+ R. }0 n$res = $GLOBALS['db']->getAll($sql);
7 ~6 f* o' T3 m0 b  R7 S5 i$dyna_libs = array();+ C0 o6 X! X; I- K
foreach ($res AS $row)2 }  [2 v8 W+ r/ O  E+ @# O
{4 W0 `+ j4 D- i- K0 d. }; p
$dyna_libs[$row['region']][$row['library']][] = array(% z, a$ I1 t5 r9 j' x! d
'id' => $row['id'],
% W) [2 L  C# b4 ~'number' => $row['number'],
4 r, A: X4 ^" b: s2 W1 D. H1 E. {'type' => $row['type']
& {1 l* b/ U! h2 v8 D' j);( e1 y4 R4 F9 J" V, \
}8 r! J! J: p6 ~7 X4 H7 G$ P
return $dyna_libs;/ F. [9 t( S6 C( B4 @8 B, y& a: t/ y
}
8 E! H# F- t% R4 V& ]) G
) W3 C. Q; w- Q* k$ |- d将$ext = end(explode('.', $tmp));
+ L4 b2 y- ?& }! @/ W! `7 R改为- Q# M! I. T: g: x" s$ M
$extsub = explode('.', $tmp);" O' k0 a/ p1 f, Q. j& T; {" d
$ext = end($extsub);3 j( k; g- g9 A; R& k" h# Q
, Z) ]2 ]1 G- l) A
解决办法 2(屏蔽错误) :
5 D' k  \6 U! @1 z! a" L. m% n ! |5 P7 u/ T3 G! n' g2 p$ X" H8 o
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT; d7 Y- B( q# l4 Q2 K
php.ini中有如下设置:* o4 x5 V: y6 T# v* i6 x' K4 ~# X% `
error_reporting = E_ALL | E_STRICT
* p% u/ q* g* E, f) h8 N
7 x1 j/ \  m8 E- o# S5 [这是说,显示那些不符合编码规范的警告(coding standards warnings)。( }/ H) M7 t3 m7 ~) r" w
Joomla其实是建议取消error的输出,如果出于调试需要,应改为. j$ V. v9 o, o# R  z
error_reporting = E_ALL & ~E_NOTICE
  c$ O" v" u' M / e! G8 O  _7 @- n9 N9 U
问题得到解决。
# G( E9 u2 W& J9 W: G/ m2 Y* V4 h0 O* |- Y! i

; r( x" P2 k6 a  ~% |9 j% lEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
! y1 r  c, P' r5 Qphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));9 c& r2 W4 B3 D6 u' v) U, n$ @
改为 :
9 U5 v7 z3 Y" C$extsub=explode('.', $tmp);$tmp=end($extsub);
: x9 Z0 @8 h; b2 L
7 D' g. R- q6 z! c% D- e+ Q
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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