搜索
查看: 20388|回复: 0

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

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

0 S6 t+ N1 n7 v9 ?0 E3 Q, E5 ` 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 错误- G- A# `$ l8 v2 ~+ S7 q: b
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
7 y7 e9 _" |& T6 w1 d  1)将function gd_version()改成static function gd_version()即可。
" l4 @4 d) C+ T  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
; [! ]( o( D- `+ ?9 M6 @$p = new cls_image();% M3 q- D: `3 t$ x$ w. a; f/ J
return $p->gd_version();
4 X5 `8 c- u% O4 {8 ]. {7 q! q$ _' h: ^9 W, E. K
' M# s; H! H' D) f# m: g) {
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
! i0 P: A6 m$ ~- v安装进程已中止1 W+ K& ^' l0 b* B/ F
创建配置文件............成功1 q2 F5 o' k2 h; @. g; q1 p6 Q
创建数据库............成功) W: w1 d; c. `  s9 v
安装数据............成功" N4 J; Y( @) B4 v. I4 W- o
创建管理员帐号............成功
- k% L" {1 y  s5 N1 \( i处理其它............失败
1 s$ x' I2 [% U/ ]% n" b6 h* p
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5284 J# g$ x3 g; u; O# W/ H
无法创建目录,无法创建目录* \$ O. O* c+ @1 ^; q; M9 g' y& X  Z
解决方法如下:
1 W1 s' P  N3 i# w# [$ n3 }点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
, V1 r2 c0 @. P# s( K; d(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。- k* d. ~$ }( q
不安装测试数据库一样可用,一样正常,不是问题.....
0 I0 I) |4 ]$ C" k4 T( T' P) N5 Q愿看到此文章的朋友能解决问题;
1 r9 P5 w% a. T
. {7 d2 Z: L* `
/ d* a2 Y0 U+ N! p4 {$ r9 |ecshop如何解决includes\cls_template.php on line 418错误
+ b2 o4 g- B3 H/ Q6 e& t0 J3 U; S4 V
! ]! ?% p0 L& o" b7 |, u- C$ F之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
# e! o# @) d8 D7 N' i5 bStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
8 s6 X% r7 M" N* E' Q7 o- \3 S" m第418行:$tag_sel = array_shift(explode(' ', $tag));. J% A$ V' J+ H' a- Y* D
5 P3 m; e3 o8 `  |5 r( L& M
解决办法 1:
$ S$ B; `2 v6 |5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: ' j8 z5 m# `2 [  A' ^
+ j8 Q; W, ^. M7 w2 T
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
7 j8 ]2 v3 b0 _, {2 }(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值; `! T" a1 T1 Z
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
4 [- k5 @1 m( l0 `8 |+ V
6 u; E; m- V6 e( y' d) M, q如:
# J9 }4 Z( V' x% ?5 @1 c! x. B8 pfunction get_dyna_libs($theme, $tmp)- M5 n* ?0 `1 V. O  i$ _" T
{
0 |$ s6 o; B" ^1 \" U6 y3 o$extsub = explode('.', $tmp);
2 G. m: v% ]5 [# a: C$ext = end($extsub);) |: w9 P% U1 M0 B+ `
$tmp = basename($tmp,".$ext");
4 g1 ]% y* x( h; T% Q$ A5 N7 j$sql = 'SELECT region, library, sort_order, id, number, type' .
. P+ L( ?. g5 [' FROM ' . $GLOBALS['ecs']->table('template') ., k4 J6 _( F  k$ ]: E& k1 ^! P
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
& F# W9 d% d4 @9 S) |2 M. q) ]: a1 `' ORDER BY region, library, sort_order';9 C8 E& K! I3 `0 {4 y! ]. t1 j
$res = $GLOBALS['db']->getAll($sql);% B0 g2 A# Y8 _7 q  H8 |- L
$dyna_libs = array();
; ~) a3 A* a! t: ^7 a( u0 Hforeach ($res AS $row)
* I; ]2 ~# y& z8 t. t4 @{
  r* ^" S' D# ?" f6 A$dyna_libs[$row['region']][$row['library']][] = array(
% W! g5 h  [; t5 q' Z( j8 _( q'id' => $row['id'],
2 Y. D5 }/ _9 M" }2 G'number' => $row['number'],0 {( f1 \* k' _; x- L1 J- r
'type' => $row['type']+ W7 G) f6 u  ]' T1 W% o
);: z6 V7 G8 P* `! w
}9 t  S* o' M2 c+ |% ~" X# M
return $dyna_libs;
9 f# o5 J( e, h( i}
* a8 f( w0 [8 o- l( Q / n' k- B7 L0 Q7 q) S7 [
将$ext = end(explode('.', $tmp));
' W  e6 B9 Z7 k# d改为/ p7 H  m. R3 K5 k6 |6 H. V9 `
$extsub = explode('.', $tmp);" a8 S: x8 I, v# L9 [/ q/ t! ^9 e
$ext = end($extsub);5 S7 E, ?  G( I
# g. q- d) ]8 c- j& T7 Z
解决办法 2(屏蔽错误) :
( V6 B0 a& F' w' m: S: _# e* ^
! w# Q( G5 S* m6 w# H或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
5 Q% ?! O* Q$ n5 M7 vphp.ini中有如下设置:
# ^$ L/ H" Y% _1 A: `error_reporting = E_ALL | E_STRICT
8 W8 B7 p) b+ A/ L! L
$ |) n6 ]  C/ s7 a& M这是说,显示那些不符合编码规范的警告(coding standards warnings)。
0 A- Q3 T4 C. KJoomla其实是建议取消error的输出,如果出于调试需要,应改为" D* v% n2 }; h
error_reporting = E_ALL & ~E_NOTICE
) i+ v0 i! \8 O6 W* Z$ [   _5 r' Z8 g7 ?2 g1 Q
问题得到解决。
8 V$ d: _2 J) K3 F
  R# I$ G) f* T4 ]3 O: @$ o) b  d" Q! K
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line1 U, z- N) c8 H& x! w, m
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));  j' c! _7 D3 i1 @& z
改为 :
+ P6 A2 T2 A/ O; w$extsub=explode('.', $tmp);$tmp=end($extsub);
- z' m9 u8 s8 I) A5 m  Z! e1 P1 E' Y% e- G0 l
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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