搜索
查看: 20216|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
2 z, `/ B0 d, P7 D+ {9 W6 U" n3 h
 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 错误0 y, s  j) l) W$ C
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
4 B! h% Z/ u# {3 r; e! g% S  1)将function gd_version()改成static function gd_version()即可。, L: l$ F5 `6 Z! D( J: h
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:" f" S5 K- k4 z7 j& S( w  ~
$p = new cls_image();* O4 j( I- i1 V& |/ a6 h  g
return $p->gd_version();
* w+ D2 W7 H* Z- C& y: ^. [* t& C" h; D5 X( _, {% z/ D# M* ?8 N; p% _
( ~4 p% U$ m6 }0 Z2 e1 _: `+ N2 W/ W
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:  ?1 |5 T, ]# @' I
安装进程已中止" a/ j7 @* \. e/ e9 h( P
创建配置文件............成功
) Y- W3 D3 ?9 S创建数据库............成功7 l/ G7 c1 [+ U& M0 l. P6 v
安装数据............成功
" \0 R/ j2 `0 `- @5 c创建管理员帐号............成功: W; k% }4 a; y; O* {. w& R
处理其它............失败
" N  L* A: l. ^- ^" ]6 W  z8 X( j3 m9 \4 z- z  z( N; k. D8 q
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
7 [/ l- b& o, N" w# G/ D无法创建目录,无法创建目录
4 s. x% U) [3 \0 A解决方法如下:
7 ]- A$ t, |+ G# k' @4 Z点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
' L2 @* R) G  j) Y3 f7 ]8 D(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
( b1 S( G- Z5 q- z2 B) v0 B不安装测试数据库一样可用,一样正常,不是问题.....
/ T0 c+ b6 y" J0 `- k0 G! Q5 C4 ]愿看到此文章的朋友能解决问题; 3 d4 K7 c! l6 C9 I

( }, X8 M) \0 B
; L# E$ P2 N: i% `$ Yecshop如何解决includes\cls_template.php on line 418错误' R+ J7 q$ X" \* @4 |2 c& Z

3 A$ O# ^8 k9 q# A7 Q之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
; F7 X5 o) B; EStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
6 b% q0 L6 M( K1 l$ Q. a2 j0 F第418行:$tag_sel = array_shift(explode(' ', $tag));
( Q$ g( Q" J" B! ^1 U- k6 H " }0 C" P+ w$ S+ u3 s8 E, M
解决办法 1:2 I6 H7 v1 X1 z
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: + p+ Q+ Q' J$ o
; k% S; @4 U8 |1 f5 a) y9 c2 f% R
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
2 H2 Q1 A: l! w2 Q1 m(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值% V$ y, O9 t, y+ j
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
- `" r( F- o5 G * p( E0 b7 `1 ^5 t; j* k0 F6 u% I
如:
# j* A/ N7 H  m( Afunction get_dyna_libs($theme, $tmp)
# s0 l! j5 V+ X! c2 W{
4 w. x* W+ ?4 l. U$extsub = explode('.', $tmp);
" n" M" i7 w% t! A$ext = end($extsub);. }+ n2 ]! x- H* o$ C
$tmp = basename($tmp,".$ext");8 a: w% ^4 o3 h0 G: }3 Y+ X
$sql = 'SELECT region, library, sort_order, id, number, type' .
9 p5 D  j5 w" L& N7 C2 q' FROM ' . $GLOBALS['ecs']->table('template') .
: S" N7 Q1 e" U. V, H* \* U& j" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
) h& T+ g6 d" ~( f) w  {' a: N8 _' ORDER BY region, library, sort_order';
+ j- {$ X1 ?. q' l& J$res = $GLOBALS['db']->getAll($sql);
9 h- ^( q1 L2 e4 P' K$dyna_libs = array();  F( _8 F, S9 K/ F
foreach ($res AS $row)
, J7 p. G; z, ~. F{3 N" L- n! w) x  r6 n
$dyna_libs[$row['region']][$row['library']][] = array(
# X/ Y5 i4 D7 D'id' => $row['id'],
! e; s2 i. L" t'number' => $row['number'],: P! y5 J' }+ I, f- T( }% O6 g
'type' => $row['type']2 {" z6 m* {0 O  }
);
" F" l8 A& U" O5 E}
% G! @( P% c- J& V; ^return $dyna_libs;
/ V: y7 f. R6 D$ d}; ~5 a- U/ T2 U$ E/ |- G8 L/ v- C  z
! \/ A. V2 \# @' g  K- N) A8 H
将$ext = end(explode('.', $tmp));, X% L' f3 A$ N/ M' k0 Y8 w
改为: s; x, o! ^. ?" Z
$extsub = explode('.', $tmp);
! @7 ~" G" T' f+ U! ~/ \/ i. L0 m8 U$ext = end($extsub);
9 c5 z0 D# U9 A: z1 J9 b
# V1 A2 k, |* r' a) _8 x解决办法 2(屏蔽错误) :7 o" x0 g- X/ S0 D( [
* s7 l  j( |* d. k" ?
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
0 F6 E7 {  `' p+ t9 zphp.ini中有如下设置:
0 ~6 d8 [- a7 t* aerror_reporting = E_ALL | E_STRICT
8 L$ P4 K" i( s( \1 i, |2 ^4 f ; u5 X: w. Z! l- n* b
这是说,显示那些不符合编码规范的警告(coding standards warnings)。7 P, U/ W' b4 K9 k9 ~: h
Joomla其实是建议取消error的输出,如果出于调试需要,应改为. r. J) i9 \8 N  {3 l  {
error_reporting = E_ALL & ~E_NOTICE3 S, V! F5 L3 b; @0 }

0 g" ?; _, `- a' i) ~$ |% _$ ~) J问题得到解决。+ b5 x' U" B+ ~& ]7 @
5 p) l( ]5 _: u- h* ~' ~
* t0 J- T6 |" D9 S) Y1 \
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line# {$ a, R, T6 d* D9 G2 x4 j
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
" p# u2 w  K7 P: ^改为 :1 Z$ Q0 i6 I6 q% r! J
$extsub=explode('.', $tmp);$tmp=end($extsub);
! x. }% D: a( T+ Q2 ?% v" w; ^
6 p$ F5 E) y2 L7 H
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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