搜索
查看: 20302|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
* `  Y; E+ O2 m
 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 错误
% S# Y7 a6 w' i$ P; c' V1 E) B  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
' `/ T: V( ]* q' K1 w  1)将function gd_version()改成static function gd_version()即可。# R! C) z& X4 t. D6 G
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:2 p% Q$ X5 @& Y) d) Z
$p = new cls_image();
; M9 |2 I! a5 Areturn $p->gd_version();2 U  D- F- J3 ^% p" k6 [
3 [; F  y6 Y7 I& e4 W) e

: o* c$ T' x$ u7 c; R- h& g下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:- [, r  [( B; m5 x; ]3 y( x
安装进程已中止
! P8 r- E+ k" ~  m创建配置文件............成功4 S' d. h) y+ t" b: }) n3 Z( j
创建数据库............成功
( K5 |4 @9 \. n: y# P: G安装数据............成功( r( ^9 E( |* ^
创建管理员帐号............成功
9 P2 v( B9 L) @- f& ^处理其它............失败. y/ B" u% x9 X9 y: S
$ ~8 M+ h9 d3 \4 u
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
4 f( b1 }) i3 x无法创建目录,无法创建目录3 g3 V9 V+ Y0 }, T( D5 t  K$ l) T
解决方法如下:
/ Z+ M- Z* e9 g( P" x点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
8 b0 L8 u" D! P1 j/ Y(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。: N( v7 I/ U5 m9 z+ A  Z( l
不安装测试数据库一样可用,一样正常,不是问题.....
6 E$ q4 l9 w/ a1 Y9 X$ @' U愿看到此文章的朋友能解决问题;
7 O$ }  k0 k: e+ b. R5 l% K) y& @8 T) E

4 i1 k$ j" L1 {9 y4 lecshop如何解决includes\cls_template.php on line 418错误
. p/ ^) e- _* h; x7 ~  Y( U* @" B5 r. N+ x  k
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
0 |* Q9 r! c. {Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
* w4 r8 s2 i8 f0 F! O" L) f第418行:$tag_sel = array_shift(explode(' ', $tag));
, I) G( @: G9 x! k
" M& f% D/ y  U" g- h  O- F* F解决办法 1:0 {7 c4 M0 @' Z, a/ u7 [- ^
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: " Z  E0 g1 t. R
; y$ \1 }7 c5 w
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
2 a4 h1 I) f4 D1 a, Q5 m; |/ D(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值/ @# h6 F  o4 A2 l. {
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决8 I1 q) z* V; y8 E2 ~

- l6 {5 t! T8 {如:
+ u8 J+ r8 y( R- ffunction get_dyna_libs($theme, $tmp)1 A" x) o( @$ d
{
8 M/ O9 F" z( G% a. h" n$extsub = explode('.', $tmp);) ~' L/ _' W% P! ^( L
$ext = end($extsub);
7 [" D. X  ]4 l$tmp = basename($tmp,".$ext");
7 [/ }# o3 T* E) \9 f$sql = 'SELECT region, library, sort_order, id, number, type' .* z3 R0 V. t" g+ G" P& L
' FROM ' . $GLOBALS['ecs']->table('template') .
4 I5 X& J* w' a  A0 H& F' L0 q" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".1 i4 R6 K: E$ p' m& K* w. j& i
' ORDER BY region, library, sort_order';
1 B$ u% ?  {+ B6 Y$res = $GLOBALS['db']->getAll($sql);
" v2 i9 I8 K) ]/ ^2 j$dyna_libs = array();
/ Z! M1 \7 F! s. @5 O8 Hforeach ($res AS $row)* u' h# O" s1 o4 ], t1 q# L+ Q
{
( s, J0 I6 p/ O% q$dyna_libs[$row['region']][$row['library']][] = array(
  P7 Q. t2 o: e5 W( b2 {' G2 h'id' => $row['id'],
0 A; d9 n  n  P' }. m'number' => $row['number'],$ @7 L  ]' a4 V" c4 D" B9 J
'type' => $row['type']  _6 x) s: ?$ ?7 a
);
5 u( {. U! t6 @7 R}
) A) i" e0 Q: Vreturn $dyna_libs;
* q" |& c6 ]" y% }) N}% R0 N7 g. c: O5 t. h- c+ `
$ _! h8 F. W+ O& O' ?
将$ext = end(explode('.', $tmp));
+ o6 P2 d8 U; Y: A: V5 Z- W2 Z改为
0 K# P7 j5 p! Y" Z7 f, _* P$extsub = explode('.', $tmp);
. o, N9 k5 Z4 F# m$ext = end($extsub);
/ D# ~; |3 j- ~5 s: |8 u" J
) D4 R0 f! P+ a; |- e- o解决办法 2(屏蔽错误) :
4 ]8 O4 X' e: I1 n8 }4 }2 S ' `4 N& C, Z! P5 u. [& o" l
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
1 r) u  L6 \0 x& t& [; Uphp.ini中有如下设置:
  V. Q8 Z& h9 ?# Serror_reporting = E_ALL | E_STRICT
/ g1 l8 b# o$ l# O7 ]+ S: ? 3 b& k% \+ O8 q& v2 `
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
) j0 |9 R! g5 h, O! \Joomla其实是建议取消error的输出,如果出于调试需要,应改为
; m! x; Z5 P- `- U8 rerror_reporting = E_ALL & ~E_NOTICE
% {5 W) m: I( n7 Y
1 M0 R! }  u1 t) w问题得到解决。% ^  W3 I/ L1 H( P* h
0 F- D+ ?0 X' n4 E: s

! D. ~* {7 s  `+ P+ M6 XEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
3 M9 @, U- Q# e- Y/ ^! w  _php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
7 _( B5 g$ o" c# q& J改为 :% h8 n1 q' P" R: n
$extsub=explode('.', $tmp);$tmp=end($extsub);
4 }4 y8 w+ E% G% _) }6 p4 m4 ~- O9 n4 }
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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