搜索
查看: 20490|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
6 T7 G6 t) f. P
 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 错误6 r( g' ^5 i" E
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
% [7 U- v2 }9 w) s1 x3 g  1)将function gd_version()改成static function gd_version()即可。2 `0 p. h! s: z  p- \
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:1 y- m% v+ Q) T1 j0 u
$p = new cls_image();6 ]# o$ S# u( O4 T/ W+ G# o( Q
return $p->gd_version();
, d- I; U/ L; E
1 Z! N4 D6 @% B5 @0 Q
4 h% T4 S, Q: T  Y下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
. C- c% Z0 C' m' N9 P安装进程已中止
: H! i; a- V5 V  M; S) A创建配置文件............成功# h4 ?+ \3 H1 A$ K+ f
创建数据库............成功
! ]1 V0 m5 K2 X  ~; ?安装数据............成功
: X+ r4 h3 L- ^% x创建管理员帐号............成功
4 y$ x$ P+ P9 e: m( J! d- Q处理其它............失败& x2 ?# ~! o/ R& e% M
: ]  Y2 U- w+ w! Y+ v: C% G
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528  z, X3 p* z% F3 l  m
无法创建目录,无法创建目录
. d# R4 I0 Q' U' u5 O; r/ e' p8 |解决方法如下:
& S* C8 i# z, W/ C点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
7 J( j0 I8 q% C5 Z! T9 V+ L(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。; a) M1 z' [8 w1 H; r* s
不安装测试数据库一样可用,一样正常,不是问题.....
5 I1 u0 ]/ V' X+ w愿看到此文章的朋友能解决问题;
2 ~, i5 e2 F$ u# ]. ~1 }& j! t. S) [0 z% W0 {$ w. {9 d

: @* i) N) b, [7 xecshop如何解决includes\cls_template.php on line 418错误" \7 t; C2 l( W2 v
0 A7 ^6 Q* D6 \8 Q" k5 y
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:  T: j2 F% ^1 f' b1 h; V: Z9 b
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418/ r  W5 G# a3 B3 J0 E' i/ t0 E
第418行:$tag_sel = array_shift(explode(' ', $tag));$ @& J1 a5 S+ A- Q8 U

* h7 B# k! V- p) ?. y7 _( K  C解决办法 1:& y3 v6 ~2 B  L4 S! y
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
: A8 t" o% c- j6 T- Q8 q0 T
0 A9 B+ V5 |+ V2 J  J7 G/ f0 [7 B( m$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);) f. N5 T$ z8 {) k: {! m
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值5 M) {: ^5 [+ o6 x" f
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决' p4 q2 i+ o: U

" w: G" {$ i7 [. A" }如:6 o& I2 \- M' Z, L0 y
function get_dyna_libs($theme, $tmp)$ E- m+ S% Q; R  K- D1 @7 m* e9 m/ Z
{3 S/ Q; ^3 b2 P
$extsub = explode('.', $tmp);" p3 ^, {/ e" N2 z8 `
$ext = end($extsub);  S- n' l6 ?5 T, B
$tmp = basename($tmp,".$ext");
/ ^/ U  |, ]9 d* p5 `  K$sql = 'SELECT region, library, sort_order, id, number, type' .4 O" t! s; `' f, O/ }, x, g
' FROM ' . $GLOBALS['ecs']->table('template') .
+ I& V, q0 Y4 D' i; n) V% ]6 }$ L" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
; x% `! s1 F2 P0 c/ f+ R' ORDER BY region, library, sort_order';+ A8 D* m; j1 S
$res = $GLOBALS['db']->getAll($sql);6 d# ?0 @1 ^5 |7 N
$dyna_libs = array();
* M3 h; `. G9 J* C" H& dforeach ($res AS $row)
* o: b! }( m% o  {{0 U3 e4 }9 ^$ }
$dyna_libs[$row['region']][$row['library']][] = array(
7 t0 ^; i7 o9 \4 R'id' => $row['id'],2 n# f, v; ~) p( q  Y( S9 Q3 q
'number' => $row['number'],
( j5 Y+ [1 `/ f" u: d4 d: {'type' => $row['type']
$ \" L0 t8 m. Y' t1 F' n0 _);
( _; i" e" p. [! r4 g0 ~, t}! c3 h9 ~9 U& N/ T! h
return $dyna_libs;, y6 M- h4 P; x7 s3 `  S
}% q/ t) ]2 t: D$ b" d3 o
) ]" U1 M- V& m% `9 A7 P
将$ext = end(explode('.', $tmp));4 v  f  J4 T9 L! N( s$ [. I
改为
2 h' B1 o+ P1 x- X! d3 ~$extsub = explode('.', $tmp);
0 M* W4 E5 c) S2 p" N( t' o8 L% m$ext = end($extsub);& X2 Q( r2 @: u: U9 i% l7 G2 A. c
) K" j- l: `1 A3 O! c& U
解决办法 2(屏蔽错误) :8 j; e" ~) c  E* o7 R

/ i4 v5 M( z% H( y' _4 I5 d或则如果这样配置的话: error_reporting = E_ALL | E_STRICT% X7 T8 h. U9 Z8 G4 ^8 `
php.ini中有如下设置:
  t3 b2 w& y4 |- ]9 terror_reporting = E_ALL | E_STRICT
3 }& ]! H# X' ] ' q# z; N+ ^0 [' u
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
5 |9 A2 p+ i, b3 {' q/ t( {Joomla其实是建议取消error的输出,如果出于调试需要,应改为
1 A9 A( u" H$ ]4 o3 {5 _/ r+ s+ J/ Verror_reporting = E_ALL & ~E_NOTICE; }" K, V8 H5 T# E6 r
, Y6 ^5 B7 }: F& A7 o
问题得到解决。
+ r5 q2 w2 e# C- f$ r8 [
" y/ W( o' G% `. e$ D2 I
; n/ \# n: _9 @5 c% DEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line1 P  k' S, W8 q; U1 D# U) X" l
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
1 W5 j* g) o* {) e4 H+ o: r) W5 o改为 :
/ d2 v1 o; _+ f, j$extsub=explode('.', $tmp);$tmp=end($extsub);* \# c- V4 i$ G2 q' E% A
7 @/ Y9 _; d4 Q4 ]( |
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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