搜索
查看: 20227|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
/ _3 I, N* r, W' ~! b5 n0 _5 h7 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 错误
; H' D1 s- E: w' l! n  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
$ W% A2 F, E$ p# a/ K3 Y/ I  1)将function gd_version()改成static function gd_version()即可。
0 V4 ]% J) p% A  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
! O2 \1 r4 G7 w$p = new cls_image();' A2 y( p6 N  P& z0 v3 W. Y4 J
return $p->gd_version();6 W1 n. q, M  j" e+ J) Y
; p7 {( D1 y  v/ E. O& a

' b; ?, r0 T0 D8 q) f下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
4 C/ P9 @$ |( S, t( s. {安装进程已中止
: ^! |9 C1 s& a2 M创建配置文件............成功
- B  W3 E: o: O9 a9 u" o5 g. S0 R8 }/ J创建数据库............成功( Y9 Q/ f/ q1 _, L( t  d% C
安装数据............成功) z7 Y% a8 u6 O, W5 @3 ^* A1 y5 i
创建管理员帐号............成功9 O$ Q* ~5 o5 G% g2 [8 I
处理其它............失败! E( b3 U  _* G; U- U3 n
- m7 z% K/ n  x' v+ r
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5280 Y2 [' I: A! q7 L3 N. n5 h
无法创建目录,无法创建目录
% S0 I% T$ U% L" N# [. [解决方法如下:) x4 U3 y* h% I. U" u% {5 w
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 6 s( W' q; F8 @7 p6 W
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
/ k( M$ u9 \7 ^9 w2 B2 j2 V不安装测试数据库一样可用,一样正常,不是问题.....) ?7 b) x, t7 M( G/ w( F* T1 m1 y
愿看到此文章的朋友能解决问题;
6 n4 _1 [0 J8 m) o  Z3 f7 ~; L; d5 {1 P/ Y) k
' I8 I6 ^* ^1 U& r+ u8 D% `9 z
ecshop如何解决includes\cls_template.php on line 418错误  h) b  J* [2 B, C& X2 `- i2 s& g) i

$ q' Y* H9 z/ F+ S, ~4 Z之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
* X3 P: A! R) \! w6 b( IStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
* x+ |8 i2 P- R  W" d9 r, `, l第418行:$tag_sel = array_shift(explode(' ', $tag));
' M: C9 b# c9 ~4 g5 v 3 s# Z. ]( F+ Y5 q! X- ~4 B
解决办法 1:! L  H- n# _: m
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
: P  o5 J2 g$ [8 D2 ^$ b/ x* k2 d 5 E% l% Q* ?* G0 X9 n" y  I
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
6 d. j! e& D+ ~: {(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
9 d& s  u- ~2 a) N同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决' t( V( S+ ~' {' L! N# N5 g

( D- T0 S0 X" h. D* p$ K如:: ~) ^/ C* I) @# l5 c
function get_dyna_libs($theme, $tmp)& }5 @; q9 z1 P3 M9 O
{
0 K& W6 K! Y; \9 C0 l& s* }$extsub = explode('.', $tmp);
8 W" J1 B2 b  j1 L: u! V+ {$ext = end($extsub);4 ~3 ^( n9 i( f1 z& e& C. N
$tmp = basename($tmp,".$ext");( D7 q! U! {. L0 P# _4 G% v4 L
$sql = 'SELECT region, library, sort_order, id, number, type' .
3 m: H# D2 p5 [/ E: A, n+ m' FROM ' . $GLOBALS['ecs']->table('template') .
+ C6 y6 i, s/ N. y" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''"." @* \1 d2 S6 }* m) m9 w
' ORDER BY region, library, sort_order';
3 \7 B7 A$ `6 s+ o$ h$res = $GLOBALS['db']->getAll($sql);
9 k/ r' |/ e0 _2 z$dyna_libs = array();
7 w! T' U9 @: _( X0 X" kforeach ($res AS $row)
8 ~" ]' t; E  t6 l; t9 {{: s* c/ a$ ~5 {
$dyna_libs[$row['region']][$row['library']][] = array(5 ]2 a! _, q: S) I- F/ E$ f* Z7 r
'id' => $row['id'],; c9 E. x% F! Y2 O( M
'number' => $row['number'],7 B5 ]  b; l) g; r1 X1 w6 M7 J) m. \
'type' => $row['type']
2 w' j( a) F3 ]);
7 `: f+ s7 T( f5 ^2 W}
. f. p5 b8 M7 S6 b& G2 U% Breturn $dyna_libs;/ \' b$ E( h) b3 C: M* M
}
9 H1 u, @: ~9 P8 c, J2 k / }( J6 n7 g, _+ a& M
将$ext = end(explode('.', $tmp));
$ K* y: c1 T! b7 }改为; ?1 o0 L% }1 Z, b' P
$extsub = explode('.', $tmp);
/ s8 i+ G9 m0 W" S& O' F/ f* O$ext = end($extsub);) G% {  Y: K  D
' B# ~4 f$ q2 |! U) D% N0 e1 k5 [9 c; o
解决办法 2(屏蔽错误) :
* X3 R. W  J2 ^( c4 n8 C$ W" b& g ( `% `: _' c) j, F; H  r8 x
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
2 p3 X7 g5 S: `% e; s; v1 s+ @php.ini中有如下设置:
: R$ C& D3 {& p) A' `4 ~  Eerror_reporting = E_ALL | E_STRICT& M. g# x* C: j( G/ Y
4 |2 U8 Y2 K) c5 i/ c0 k1 ~
这是说,显示那些不符合编码规范的警告(coding standards warnings)。7 g1 c, x; i& _; G" c
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
! K# a6 e4 ~, K9 D2 cerror_reporting = E_ALL & ~E_NOTICE+ s/ e/ X% F8 e* A/ x

3 m" H2 o- k/ l问题得到解决。
5 Z' A8 i4 |6 U5 [4 _
0 u$ N- a8 U1 t( c0 F0 f# g3 Z" e  X3 d- q' h/ i, [* Q8 E
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line/ B" a3 q; r. t, S
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
" K8 o" X5 z+ N2 s5 y% N* ~改为 :5 \# c. Q6 [% f  v9 ]( ?) J: f9 E
$extsub=explode('.', $tmp);$tmp=end($extsub);( V- x/ j/ r; N2 K6 @

& N/ a: {: b5 O& @: L
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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