搜索
查看: 20467|回复: 0

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

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

* d, d, w; M4 T 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 错误% m6 T' d8 z6 v2 x" P' i
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
% |7 l% E6 m% n& K& C. Y  1)将function gd_version()改成static function gd_version()即可。2 U0 b0 l" y! t! [9 t! Y! M; s
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
- s9 U* G; L/ g+ v2 ?  T$p = new cls_image();9 L' ?: B/ s. c9 a$ ~
return $p->gd_version();* V, q/ {+ c* e5 T2 \% G9 h1 I
3 \4 m' s2 B7 L9 r' c- a- @

  a4 O  ]6 a" R; G, P下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:* d, u0 v( W4 B1 \3 N. z- d
安装进程已中止
9 \/ M2 z. U3 Y9 D! R6 S# D创建配置文件............成功; a9 b3 J( d+ H; |
创建数据库............成功
7 p3 @2 t( f( ^% z0 Q, K3 o安装数据............成功2 b( k% N- s/ D) B' \! l) V
创建管理员帐号............成功. L  L+ F& G' N3 o+ F, a8 V
处理其它............失败
4 y3 a5 J( r9 E) h; T6 H; v) ]6 Y4 i  Y
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
3 y% @! T* \0 N0 `, ^8 M) n8 d9 x( w. w无法创建目录,无法创建目录
0 c8 Z" u/ t# E- x- E$ u. B解决方法如下:' m+ Q/ Y8 P, n0 z& f- B, P
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
5 x5 I. `) z3 I% P" w  U5 z(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
' P: M. p7 z/ k4 ]  R不安装测试数据库一样可用,一样正常,不是问题.....9 h# u) I0 b% Y! [
愿看到此文章的朋友能解决问题; 6 A, A+ y: V- P1 J
3 D% I$ r  S# d6 F: R

, w. R! ^# a. i: D4 Z5 Hecshop如何解决includes\cls_template.php on line 418错误
  S( P( g7 @9 z9 N1 L# w  ?8 h" ^3 {% e
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
# \9 q. P/ Y6 p! a! m0 s. HStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4188 [) q+ Z+ {5 @0 {
第418行:$tag_sel = array_shift(explode(' ', $tag));; ^) L1 W0 w6 o5 w$ n

  X/ u4 p7 X: y# [9 ^$ p解决办法 1:4 w) p" S: k  V# O, g) o
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
9 W* y+ }- p6 ?- E. G# |( U & p' G( ]' T" B( Y- Y
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
- d& Z/ ^0 M+ k. s5 e; t8 R8 r9 b(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
% c7 C5 C, A2 q# _3 Z/ x0 y同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
+ C. \  z, V4 ]+ Z: b5 k) [, A
3 f, L+ c, y; z: \如:
6 s2 r' Y" B% j& G# z6 ^" W# B% Kfunction get_dyna_libs($theme, $tmp)
" J0 T5 g: I  s( z; Z1 C{- B  S: [' `8 z, e! @/ {
$extsub = explode('.', $tmp);
7 w, f! c4 W( D* m( C  J8 i$ext = end($extsub);
2 W4 T$ `; C4 T0 y- [7 `' H$tmp = basename($tmp,".$ext");
& y" u  T, c. l7 D$sql = 'SELECT region, library, sort_order, id, number, type' .6 s- h8 E% Q, {. G) c
' FROM ' . $GLOBALS['ecs']->table('template') .0 t5 _. s; E" d/ d) j$ _0 \. `
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
( B# u5 @8 d( O7 F4 }' ORDER BY region, library, sort_order';
( l# K' C* H3 m& U- S' _$res = $GLOBALS['db']->getAll($sql);
6 ]8 d; z( [5 V7 [/ \/ Z3 t/ [9 s. z$dyna_libs = array();/ n2 T5 D& K; b
foreach ($res AS $row)# ~# K0 E( m, G# B
{5 h* w+ P3 v$ B5 q( {8 a! D. B
$dyna_libs[$row['region']][$row['library']][] = array(1 n" S$ z: d+ I7 g& ?/ F
'id' => $row['id'],
+ K4 K& _( p; p+ s& S6 T2 k'number' => $row['number'],
7 Q" b4 F; J  H5 C'type' => $row['type']
: W- o7 ?1 O, C' C3 _);1 b# M# G1 ^* |$ y- M* q
}" u1 M, ]' u$ `. U# b
return $dyna_libs;
" [5 m" k  V: R}) E+ ?1 Z" b' ]# B
# a5 |5 D0 X) m! R! t9 Y
将$ext = end(explode('.', $tmp));
, X9 H/ |! h/ m' ^/ \1 X1 J# f改为& x' M, @0 C# K* l# B3 A, ?' n
$extsub = explode('.', $tmp);
$ ^& Y: T8 j8 V/ X& o, n$ext = end($extsub);2 r( \/ {- t* P5 R7 o' M6 {
6 l9 ?9 {2 q. C+ K# ]+ f8 V1 ~' F
解决办法 2(屏蔽错误) :
) p: S  D, w* n! K" ]7 Q ' M" ]% _* h8 V) [* ~
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT" c0 c* y% d$ ^. R" R' ~. o5 c
php.ini中有如下设置:/ n; [1 `2 W% U) n! h9 `
error_reporting = E_ALL | E_STRICT  J& a. q' K! u, W
: D% N/ _) j. ^- w( _4 j! Z
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
. ^9 d% e7 U) }2 x% i) a  C# |3 dJoomla其实是建议取消error的输出,如果出于调试需要,应改为
" Q- r. I$ }9 T) }error_reporting = E_ALL & ~E_NOTICE  j9 {0 w8 T2 t7 Y5 K% |. m

# |9 e0 r  j% N. E8 E$ D问题得到解决。
+ z8 v  k% L' S  Z$ R2 P6 N  ?4 o0 }3 A! O! V9 B
  A6 D! W& f' N4 d: d
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line: u, A8 B0 h- C) P2 i5 `% M
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));* L/ D6 [7 D  `& L( W* ~. ~
改为 :9 w( X6 }# K! z2 t# Z
$extsub=explode('.', $tmp);$tmp=end($extsub);
% b/ {1 r, N, p% L/ z& I. C
" d( E2 H7 _! ~% {
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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