搜索
查看: 20358|回复: 0

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

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

7 C8 _! r! ^6 i 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 错误5 p1 T& }5 G* I+ y& F+ D+ @! q6 a
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
  _/ H  m5 r: i  y) Z) {  1)将function gd_version()改成static function gd_version()即可。
0 s, D: C5 G0 z4 @' A  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
6 z6 U! k7 G4 M7 w* W6 H6 B$p = new cls_image();
. h" i7 p/ D: l3 l, E8 `return $p->gd_version();
' }. Z! W2 h8 }. ~& d5 _$ K
! U' |. ^4 |7 P1 i+ M& P$ \5 ~8 n0 Z. m
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:" x; L+ }$ k9 X. d# k% _" o# N- m
安装进程已中止
7 k" n! z$ `% G7 F. t* q创建配置文件............成功
7 L6 R& m* o1 y' n5 e创建数据库............成功+ Z4 d& \' I$ S5 t9 P
安装数据............成功
5 ^7 T# V/ v8 C" j" Z0 p创建管理员帐号............成功
1 j7 T* U* x" ]4 H3 T2 W处理其它............失败
6 C8 w; N( |3 p6 V% Y/ {4 b* s/ I2 U
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
% |- M! `$ E3 W( q6 E! ?: H0 [无法创建目录,无法创建目录, q- R4 V3 N6 |! |: D5 ^+ F
解决方法如下:
+ v4 p4 H  ]+ O+ v' ^点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
! Y+ P" M: s3 f(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。/ n# a: R; J) j) S
不安装测试数据库一样可用,一样正常,不是问题.....* A% W/ T0 S: K7 [  z
愿看到此文章的朋友能解决问题; 5 N) D2 Y1 I3 E. I& |7 w
9 i( {9 v9 `% ^8 b& ^" ?
. v9 |: q) L% Y# p% n# z2 y8 k% u
ecshop如何解决includes\cls_template.php on line 418错误! i" N  C; l( S+ x* I, k

3 L4 a4 l2 @6 G8 a之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
) h: ?. |$ S' w  _1 B: E: bStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
* [* [5 h5 h- v0 q, S3 C第418行:$tag_sel = array_shift(explode(' ', $tag));
1 l  `+ h3 E. W* P$ J / Q+ D! x( U7 s  }* D
解决办法 1:
3 j3 H) y0 D, d  Q5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
2 o0 \) W4 {: ~0 z6 \$ i
& o0 G5 t, t% U% T7 B$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);* p5 I# D/ c  a9 @; ^
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值8 u/ S: ^- e7 L! U* u2 N) |$ R3 o
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
9 ]' h) H, G3 X. }, m  m6 E' h
: i! i5 v( I* f' O3 o如:
6 T+ E1 Z  w+ }2 Cfunction get_dyna_libs($theme, $tmp)7 C, J* Y4 i" X1 w1 u7 |* G
{  K9 A% K, [) p: x3 P
$extsub = explode('.', $tmp);( j3 l# n( B% H
$ext = end($extsub);
8 `- x# `8 _& H% e; A& W$tmp = basename($tmp,".$ext");
5 e5 y: i+ o2 \% @: d! S! M$sql = 'SELECT region, library, sort_order, id, number, type' .; s4 i/ u3 X) @
' FROM ' . $GLOBALS['ecs']->table('template') .
# {7 d6 b6 y. Z6 x5 O/ p" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".7 @$ N% n) t9 G7 W; U7 k
' ORDER BY region, library, sort_order';
/ N! Q5 Q9 d2 G7 }' ]" F0 }, l" B, {$res = $GLOBALS['db']->getAll($sql);3 A" w% e( h5 [# }
$dyna_libs = array();3 U. g& d/ N1 ?( u  L: M# _) q$ O
foreach ($res AS $row)
" X5 B% j8 k# W; V" ~; u2 s1 q{  R* @. _, R9 x- h
$dyna_libs[$row['region']][$row['library']][] = array(! h1 L2 e; e* a) I5 I6 P) H
'id' => $row['id'],
+ V( a$ v* P1 c5 J'number' => $row['number'],
5 w- M3 w# p$ k$ w& z2 B4 U'type' => $row['type']
/ z* R5 P/ b; h5 F, H; I/ u);6 ~7 y6 P+ F  T8 x( b- V6 S
}7 f' i3 W* u- t0 A
return $dyna_libs;
; l% L: g  z) i8 w2 o}( J$ Q& a  I8 H1 ?& h

* @) g0 v+ i/ `将$ext = end(explode('.', $tmp));
7 m' I  G# W: g/ M) S6 ~9 g改为
/ \7 B9 F" y2 y( P7 T% v$extsub = explode('.', $tmp);4 n2 F# \' D% s0 F. W1 ^7 N2 s
$ext = end($extsub);" L, ]& A1 q1 o: Y0 j' Y9 z- X- P

  G+ ~; A' J. h7 E9 Z$ q. Q解决办法 2(屏蔽错误) :9 F% S) D' o0 J/ X, w& h0 A# `

( H$ h+ F$ l2 }8 D4 e或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
; x0 V; G5 q- l1 bphp.ini中有如下设置:
9 Y$ J6 k2 L& ^6 H& O% w- I* I3 derror_reporting = E_ALL | E_STRICT
3 [* X! Y( `$ [; ~! w / u$ C5 m5 f% z/ W* Y
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
0 x; x9 E4 S' M- l( B9 TJoomla其实是建议取消error的输出,如果出于调试需要,应改为
0 P! w+ Q$ v; @6 w" werror_reporting = E_ALL & ~E_NOTICE
+ A2 L& V: w, m3 Q+ ` $ e5 G: `+ Z7 g5 ~8 v
问题得到解决。
4 ^* A; u% H7 r3 \3 u
5 {, W+ v; i5 _; d. V8 c9 U8 h+ [$ V3 y0 e  c" F
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
- ^2 e, r, ~( I3 v* iphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));1 u0 e. L, M* b. q
改为 :
4 R, j. f$ ]* z; }$extsub=explode('.', $tmp);$tmp=end($extsub);& M0 e& s( \  ]: M3 C
3 J& e: `. X3 u3 c8 `, l
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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