搜索
查看: 20184|回复: 0

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

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

1 X7 @! A( F' [- \3 D$ A5 v+ U 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 错误
) E- D" r( t* ]& j* N( s- u4 d  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:  H/ [# m  J7 q' b9 c0 G3 H
  1)将function gd_version()改成static function gd_version()即可。
% G% b6 U" M  V$ v4 @  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
  ^5 b3 k0 m2 {* g  `9 k( G$p = new cls_image();) @4 E! {& L* C/ @: R8 |& @/ G
return $p->gd_version();
5 W8 b# L7 |* Z) |) @% z; A4 |9 X3 O
2 R! Q1 _/ b8 W
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
6 F, d3 n. j; ~4 @3 ~安装进程已中止1 G% I( ]) F0 g( L; V$ x' I: d
创建配置文件............成功
9 _3 \& j+ k+ `3 E创建数据库............成功$ q2 p3 Q7 X* I, S( y6 }
安装数据............成功4 }' O- M2 V! z
创建管理员帐号............成功
9 d9 V" g$ \/ S2 q0 T处理其它............失败
% I/ P4 p% o& S& b2 Z) _' O' F( {+ S; I1 X0 f/ i( c- `
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5285 s2 d+ C3 G0 M! D; ^# s
无法创建目录,无法创建目录3 z5 u8 v+ A9 H% i( f4 q3 _; H
解决方法如下:
. R+ Q* x# k# U& R& Q- }点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
1 \* R/ r- ?+ {, s4 h+ A(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。( j* O7 c6 s) w9 S9 N9 s' U9 d
不安装测试数据库一样可用,一样正常,不是问题.....
% s: g" W' P# C' e愿看到此文章的朋友能解决问题; 9 V( m8 p2 Q8 y& S* \" W
' }9 [; `) ?( ~8 i$ W; J0 c* c

2 ]1 a# I. I; ~" Eecshop如何解决includes\cls_template.php on line 418错误
: e  ~" }+ I$ W8 D* j8 C& O: t
' b) c) a- p% z" X! C之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
3 c8 O3 U7 c3 t6 K. E7 v# P4 q) SStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
2 i* T: [1 a' i" x第418行:$tag_sel = array_shift(explode(' ', $tag));
0 D2 C& W9 i0 e, S  _0 ^ , t. Q: d5 t8 X% Z5 H3 C
解决办法 1:+ r) t7 X# c2 I6 e9 M
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: 4 l7 ?) l% c' ?5 f" e7 V2 e
- z# E5 d7 d: k0 v. |$ u' V* c5 Q1 ^
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);4 P4 U( \5 ~0 p: ^" x% g1 f* ^
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
: b3 f" V1 X7 k4 n3 }/ y( ^同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决6 Z. F6 ^- b' F, |# i; r

' J* S6 m9 Y/ W( Z3 i: c; C; T4 V如:8 c6 j4 ~6 ~: _/ q+ d
function get_dyna_libs($theme, $tmp)$ C6 U  t; p, d" p7 A" J
{3 E5 d. Z* U0 q1 m1 C1 A
$extsub = explode('.', $tmp);
( K4 |" T2 v  y3 E6 X8 p' ^$ext = end($extsub);
+ L: r2 a4 c; Q  a0 ]8 }# ]$tmp = basename($tmp,".$ext");& m# e, u- ^$ n; @
$sql = 'SELECT region, library, sort_order, id, number, type' .
: j* f/ U1 D8 {. P/ m/ J' FROM ' . $GLOBALS['ecs']->table('template') .4 K1 X, C1 s# `# W6 |5 P, a* J6 V
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
2 ]% f! s$ Z1 U6 N' ORDER BY region, library, sort_order';
  H3 |; j; k5 V: W3 i7 Y$res = $GLOBALS['db']->getAll($sql);
1 p2 T+ ^& u+ w0 j( @$dyna_libs = array();0 p( E8 U0 H: U: Y- X' J8 i! r$ Z
foreach ($res AS $row)5 f- W1 {/ \0 B  q
{4 I& V! D$ w* R. K" v
$dyna_libs[$row['region']][$row['library']][] = array(
  P5 d; x/ V; Z: F+ D* X8 L'id' => $row['id'],; }8 w0 h* n: P$ m; Z! j, J
'number' => $row['number'],
" o  x6 z- q# _: }2 _'type' => $row['type']
4 f# w5 H+ c. I- A4 G);; }2 N2 ~7 o7 b% B  w
}7 {1 Z6 Z- [  V- y2 N. L
return $dyna_libs;- r- q2 e3 @( R; I# V% a9 V# u' s8 U: z
}+ \; k+ d% S: z

  v) }. i& [$ \! M! ^7 K将$ext = end(explode('.', $tmp));
# l% K# c3 |: }9 I$ r. m) ]改为0 |, f! n# V6 Y3 D, V3 ?( y/ F0 {
$extsub = explode('.', $tmp);4 q+ ]( W1 ?: C" d: O
$ext = end($extsub);8 l( B4 e& b( |) U$ K+ t5 ^) z: ?
! r$ H" p: x8 h! z6 X
解决办法 2(屏蔽错误) :0 o5 w8 e' v' g5 j" o! x& M- y
. }+ k+ |2 _0 q6 |' m, V9 Q
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT1 [7 e  w4 t% M- v/ m" P( _
php.ini中有如下设置:
/ J7 z6 z6 z% Z: t/ Berror_reporting = E_ALL | E_STRICT
& R5 g' y5 j8 W9 G) y
" X. m5 M# \2 x) D1 e$ {这是说,显示那些不符合编码规范的警告(coding standards warnings)。: i8 C6 b3 Z+ F$ z3 h5 e
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
. ]1 Q1 S, g* v/ d' Verror_reporting = E_ALL & ~E_NOTICE
  k4 C+ r) L  \2 o 4 L- X/ H/ ^6 }- R. z/ [
问题得到解决。
$ ^+ Q, r* N+ Y  k9 O9 |% ?; @* {4 ]3 \& |

, A4 |3 t2 P) A! ~Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line4 y9 [; C* x: C2 k0 W0 |
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));: |4 A& u; {" U6 U" c
改为 :
7 \9 x( D; k* b+ H, R+ _' r$extsub=explode('.', $tmp);$tmp=end($extsub);
! D" |1 A. P4 K3 w0 b
8 |; \, }  @! G
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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