搜索
查看: 20443|回复: 0

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

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

9 K6 \0 p( R8 z" I* v- d6 X 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 错误$ F& \& P* A5 r3 ?
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
! \- m  a. c2 ]6 \1 ^  1)将function gd_version()改成static function gd_version()即可。
1 F! ^3 N% m! f  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:/ e* Q- R- {% ]4 R
$p = new cls_image();
0 ~8 ?  g3 c) y* R8 ureturn $p->gd_version();
9 Q! \6 A' T9 _% q5 @2 s5 B" L* N1 }" O' ~+ @
' Q: k0 x1 J* i0 A% y2 y& P
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:  `9 F+ O3 K* L( f/ G+ b! i
安装进程已中止/ F' K4 h' {- p) Y; h" ~( F; A  O# f
创建配置文件............成功3 V* c# W+ g8 P* W' j: W
创建数据库............成功* A3 p) D" B" |2 D$ j% }8 A( Y
安装数据............成功  z5 p# X$ P  P
创建管理员帐号............成功$ b$ Z9 M( J% A6 `  K7 x( P
处理其它............失败
8 I* x" f! y$ ?* f# ]6 {. x  b! C8 M
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
$ G: W, B2 b! _; U& c$ ?: K无法创建目录,无法创建目录: G  Z+ Z% |/ B( J' [4 y
解决方法如下:9 X' y1 ~) v9 e- l
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
4 I) v$ S: w) Y1 w, G(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
$ s- n" @, U( t' s3 k2 T不安装测试数据库一样可用,一样正常,不是问题.....  e: A2 }5 j2 c5 W
愿看到此文章的朋友能解决问题;
$ T0 s* i) m1 h# S. [* d5 M! s9 C2 Y
2 F5 t4 [; Y% d" J4 D
ecshop如何解决includes\cls_template.php on line 418错误
) d" D: @$ a% `0 J5 U. A2 s7 x
+ i* g  g6 c& b7 j2 P1 D4 ?  n之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
, a& F; p/ n- R' GStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
( ~0 X! v" M. c- T% U4 {! o$ E% Z2 C第418行:$tag_sel = array_shift(explode(' ', $tag));# E1 `3 y* I8 g4 R
$ l! F, x1 o" b( }. b
解决办法 1:
% H* ~  F6 u1 w% C. T' b4 W. x5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: % T, s! _0 g! d. E% ?6 q+ b

3 k' E) d6 J, w' a/ n6 m4 S$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
8 |. o/ P. A& D8 C+ Q4 S' a(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
4 b! B$ w' j* Z7 w同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决' U% @5 L" [  i0 [4 z

# h5 h  ^2 b9 T8 b- Y6 \6 m: \如:& v! H) a& r% T. c" o  V
function get_dyna_libs($theme, $tmp)
) }" Y6 W8 r9 e* z6 `1 u, x{
( T( M  W3 w; b3 P" \$extsub = explode('.', $tmp);4 Q! Q" ~5 [/ X$ E
$ext = end($extsub);
! u% ?6 h  ^# m) ?$tmp = basename($tmp,".$ext");
$ |* r- V* i/ e( S; }3 Y* _$sql = 'SELECT region, library, sort_order, id, number, type' .
* w3 m4 |! U  U' FROM ' . $GLOBALS['ecs']->table('template') ." G! w" U3 v( o% k$ U
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".0 a1 E/ P4 l2 C/ J, m+ `
' ORDER BY region, library, sort_order';9 }# k( y; U! |; B# r( v* H, M
$res = $GLOBALS['db']->getAll($sql);3 w- |9 i# D* Z7 `# J  ]
$dyna_libs = array();
. B- i4 F5 M4 ?0 n# f* Gforeach ($res AS $row)
! @/ H' p& O) T$ U{
' {3 E  P, o7 _; q( j  Y! _1 p$dyna_libs[$row['region']][$row['library']][] = array(3 c! ?6 d2 e% s- z; Y9 d; Z- I! c
'id' => $row['id'],, F! I/ q8 h* a5 s8 G8 N$ W
'number' => $row['number'],6 d9 e5 u) i, a3 f5 f' d/ r
'type' => $row['type']
- U2 n1 o) W5 y, C);
3 `( L& N# D, X! A0 R}
1 \0 v9 t- Z0 `7 areturn $dyna_libs;
- D& ]* @% S3 r3 I) D) \$ J}
8 @1 x  P* M( Z! I2 n. H, x3 E 0 O$ \, N. p+ a) Y
将$ext = end(explode('.', $tmp));
% l) H! E7 ^/ e改为
4 V* {) N: J! T5 {1 N$extsub = explode('.', $tmp);
& y: x8 X8 G2 M! u$ext = end($extsub);% ?2 k4 n. w7 z# w, f( t/ X) C2 D; q

& N5 j5 e4 n/ t$ |! `3 T解决办法 2(屏蔽错误) :
3 g/ P8 e9 R2 i7 K3 a
, }! b/ E0 \3 I& h或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
% Q* a! [: s2 iphp.ini中有如下设置:
" H, I7 D/ t; R( gerror_reporting = E_ALL | E_STRICT
  e9 n( ^7 M, x8 B , n" k! k6 ^1 a/ {) r7 @! G
这是说,显示那些不符合编码规范的警告(coding standards warnings)。- X1 h# j" v* l& \1 ~' s
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
% \! v$ \1 s3 n5 T; ?+ ierror_reporting = E_ALL & ~E_NOTICE) s+ l4 g6 Y8 |: F: z
/ s; s  Z- u/ s# @% [
问题得到解决。+ _# q4 g8 n& M5 j

. q" O: c% i0 O
3 L8 \% [4 X7 G' rEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line' d& w( s' k0 c$ H. M* W  f
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
; _+ d; p* T" B: m改为 :
% S5 m. x/ S& |) O) d7 Y$extsub=explode('.', $tmp);$tmp=end($extsub);
, V. `. g  z# d3 R0 P7 k4 J0 }8 E1 r0 _4 {$ C2 J1 z. X
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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