搜索
查看: 20499|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
! Y* s8 B, |  p. g9 [- P8 g
 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 错误
" ?/ a  [( n! Z6 x' R- V  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
# E1 c) y6 V5 f' w$ z  1)将function gd_version()改成static function gd_version()即可。( q8 R& `6 L4 d, n1 @( @4 N& w. |3 j4 [: ]
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
2 W3 S  v# Q* g0 Z$p = new cls_image();
: A* i& n6 z' {0 K9 Preturn $p->gd_version();8 I+ ?- Q9 M$ l* }2 ?$ ], X3 T
. r& n; c8 |& ~

7 I* L) L% n4 N) e# y5 i. K" w6 G下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
/ R" z' e* ]; d2 F8 ]- z# c安装进程已中止
2 i/ s6 C4 X' g$ M, e, D# L  f创建配置文件............成功
$ r" R; s% g; R  E& m创建数据库............成功
4 p) c5 b  n) S  C( G1 ~安装数据............成功
( m3 c  @4 k' R+ O" d, h& x创建管理员帐号............成功
$ H) I$ E7 h4 S$ K- ?' D处理其它............失败
4 X" ]6 E; K1 h1 H
4 ]. @5 t2 T3 V, u( m6 AWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528) z. `1 L& g1 r' G% h
无法创建目录,无法创建目录
+ a% Q- j- V8 Z; U0 W8 ^解决方法如下:
6 E" @9 `3 [: L1 s! [0 J点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
. i% R7 M( F# N; I(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。/ e  C  a  y! q& v( u2 {8 q/ I9 y1 J
不安装测试数据库一样可用,一样正常,不是问题.....
& h% t9 t* s# e7 h7 @% z% j愿看到此文章的朋友能解决问题;
9 X& U3 B4 ~: F* Y4 a
8 c1 A7 X/ p% ]& l5 E
* q5 H1 {' o$ W0 z6 [5 D0 x5 a; u" qecshop如何解决includes\cls_template.php on line 418错误
3 W7 B( W0 _9 J7 D+ [( v0 @7 \( D. t4 R( n6 L* x
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:. a$ J9 T# m: F) h, J
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418- G; p( R# I4 T# T
第418行:$tag_sel = array_shift(explode(' ', $tag));
2 K% `7 T1 G: J
, r  _7 f$ z- P+ d4 b+ r解决办法 1:$ A; d* Q1 S7 r. P4 S
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
$ L& L2 d" y+ v. t - P2 m  E5 n+ o0 v
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
0 n0 C: b, h3 {: H6 D1 g% v+ y7 ~& L(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值( w2 U! Z* d7 N  x5 j+ ]& X
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决( F5 K4 u% e  ?' W& T
. F" ^8 A5 a* K2 y! a
如:4 d5 o; t4 z; l  G1 O4 \% x; [& X
function get_dyna_libs($theme, $tmp)
% b" A1 d; Q/ \3 P, K" Z, d{
7 \3 V* s! w4 x# _9 S  `0 ?2 h4 Y$extsub = explode('.', $tmp);
  p" L! {8 h. g$ext = end($extsub);
2 X- r: T/ k, I, i- T. [$tmp = basename($tmp,".$ext");
+ j: ]& f! L5 H% h( M$sql = 'SELECT region, library, sort_order, id, number, type' .3 g8 T  c  J4 E% t8 D
' FROM ' . $GLOBALS['ecs']->table('template') .6 v4 A' w3 Z8 C' `5 [
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''"./ o! h0 b  k# E2 u6 w; q) D
' ORDER BY region, library, sort_order';
, e% ^  D  t" z1 j9 c' @. B( d( W! u$res = $GLOBALS['db']->getAll($sql);
7 q( r3 C* z7 W! t- E% {2 Z3 R$dyna_libs = array();
1 N3 I8 m% W. N" jforeach ($res AS $row)6 `7 f9 k. z% a( f4 L& V, V
{
. H! ?4 I( V4 O9 Y, o7 M" ^( Y$dyna_libs[$row['region']][$row['library']][] = array(
. U' C; u6 U0 j3 U" q# J5 m; E'id' => $row['id'],, P$ A' N* D) Z" Q3 l' M8 G
'number' => $row['number'],
$ V/ t& M7 A7 X. F& I. t'type' => $row['type']
4 _$ a$ @4 u% T& D);& v# q5 a: w# @3 J
}; M( N2 ?6 n- M' S
return $dyna_libs;
3 T3 `# ~. j6 K, \}
% @" `$ g- l  z * @$ \/ X; I& j  x9 q  Y
将$ext = end(explode('.', $tmp));
: C: o; a) U6 m) _# M* O( F" t改为
! k- s( [6 C9 h; H6 D$extsub = explode('.', $tmp);
, @& ^( e8 p! {  d# O$ext = end($extsub);
9 \% c( Y5 u7 ?* [& [
  j5 U/ e. ?  J% k6 A* H解决办法 2(屏蔽错误) :, q: u: }- {" e# r  ~$ Q

+ \  a( t) o+ T6 _或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
+ U/ y* J8 i* O5 i) d/ k/ z* ]php.ini中有如下设置:2 }+ b) G2 H" e( X( F9 V
error_reporting = E_ALL | E_STRICT0 s/ t) h& r! F4 V4 l
0 B3 z: m, h% O. H
这是说,显示那些不符合编码规范的警告(coding standards warnings)。' \8 R1 p/ u7 m3 J
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
" |" l% h. {( o& K& c3 berror_reporting = E_ALL & ~E_NOTICE
: z8 S5 _. ?+ b1 C  O& }0 a - ]0 g: y+ @0 ^5 S: V7 q& f
问题得到解决。* h+ q, E' A& M, p( |# H

/ r0 C+ ~, q7 d0 V! D; _* v* r" a4 _, P" L9 P! l; x
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line4 g4 j1 }$ l3 D$ N
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
6 f: W" \  R/ R# X9 \/ j: w# n* v改为 :, B) U- n5 W/ b7 x- V
$extsub=explode('.', $tmp);$tmp=end($extsub);
: G! i, L5 p; c- \8 V9 ~  Y$ ]. L7 w. J/ A1 R
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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