搜索
查看: 20510|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
2 a' [2 [; J* K2 ~8 v6 @" G7 O
 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 错误
' I! u, g( l1 h- X  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
% f4 F! D* g  x7 V) M# g) S  1)将function gd_version()改成static function gd_version()即可。* _& ~! V6 P" n$ ^2 e
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:# H; e# u& d# H* i) X
$p = new cls_image();" h) Q! Y& o! n* V, O
return $p->gd_version();
7 P- K6 ]+ {5 j% Z; H( s. a4 `5 q# B
4 R' W% L; {/ x4 y
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:+ j  g& t7 b* ~6 F  u. O% O  x
安装进程已中止
; p, N8 N- s/ W2 ~- c; x创建配置文件............成功
6 K, j0 n2 w! D创建数据库............成功
7 J0 v0 o9 j5 w& w2 b" b安装数据............成功
7 j" Q/ q9 D5 {5 W# o$ k, W创建管理员帐号............成功' q6 D! B5 S  I- z  r
处理其它............失败
' a8 S' h1 g* {3 ]8 a8 w; g3 U) R7 m
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
! C0 ]) K; a0 z6 `1 l8 h* q无法创建目录,无法创建目录
/ e6 b( ]+ V% V' W. l  N2 g6 y解决方法如下:0 \5 S+ a, C5 C$ o+ P- _" \
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
' B) X4 }% b: P1 e5 a9 q: x(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。% O6 F6 V+ y; `) x( W  {
不安装测试数据库一样可用,一样正常,不是问题.....- R* S5 W# x7 k0 G0 o* d. r) C
愿看到此文章的朋友能解决问题;
) K& L! I4 q5 }/ }
) j- g+ Z9 W, e5 u1 V. D$ g
3 m( V( y" S! u  p5 h: O! ^ecshop如何解决includes\cls_template.php on line 418错误
# C  l+ v, f$ [1 a2 B
) U6 a3 j" w1 J/ d之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
$ K5 |6 ^$ ]# W/ m8 y  z. ]( iStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418) \3 Y( ~9 |; F/ Q6 R, c
第418行:$tag_sel = array_shift(explode(' ', $tag));" ]% }/ J# ^% ^# d! n- s/ i
9 D5 [) ^; S7 v9 ?  [! C
解决办法 1:
+ A0 B3 ?5 V( D" Q5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: $ f: J0 p, Y$ |; x* R5 t4 D
# S- @/ t( d. C5 v0 E
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);7 d2 w( v# Q5 s6 Q$ `! W6 D
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
/ j, k* X% K  K+ l同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
* }! }- @" F3 p1 G . y& g* R: b' W" ~- K2 i4 [
如:
' Z& ~* I7 @/ }2 F/ Qfunction get_dyna_libs($theme, $tmp), ?0 ^8 e- u9 [/ L3 ]& j
{6 L* x8 Q, _  T* z
$extsub = explode('.', $tmp);, w5 r' `3 |- M: v! ~- e
$ext = end($extsub);
7 H2 h4 W0 B' i, y" s, {  O! r5 ?$tmp = basename($tmp,".$ext");
" o& ]& z1 }1 W  s- e2 o$sql = 'SELECT region, library, sort_order, id, number, type' .3 L2 X7 n. L  M5 |# N# X
' FROM ' . $GLOBALS['ecs']->table('template') .! `* A; m' ?6 }+ P0 K
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".* I  z8 v7 h+ f; |+ S* M
' ORDER BY region, library, sort_order';$ p4 H! L( H( M% }) c' ]. c" A3 f6 ]
$res = $GLOBALS['db']->getAll($sql);
  e, o- [3 O( {7 f& k$dyna_libs = array();
; H3 ^1 K" A- |1 W$ rforeach ($res AS $row)
  I6 I$ q5 n' p, b- P{- V: e' ]7 v6 B$ b& u+ e
$dyna_libs[$row['region']][$row['library']][] = array(
2 \; D$ r& S) N/ d'id' => $row['id'],
; A" B1 @! Z; c# l: L3 q'number' => $row['number'],
+ f+ x( v, p; ]'type' => $row['type']
- W2 W! P0 W# W% b/ d2 });$ ]) I1 g6 |3 }, Q: a; P
}
2 i7 p6 g$ ]- Jreturn $dyna_libs;
2 a% M1 \8 }, L! A}
4 Y& N; @! E2 o9 U
: N( G3 O4 G/ v/ D& W将$ext = end(explode('.', $tmp));
  _0 g3 M# |! c5 U* f改为
2 r* m9 o" @" x/ ^" i0 `7 \$extsub = explode('.', $tmp);" n; X" i! \. D$ K) ]% X7 i
$ext = end($extsub);
# O- L- T( R6 n' h8 c, O" ^ - o3 d% A3 W. Q% o& e' v, i( o4 I
解决办法 2(屏蔽错误) :
* E% Q1 e/ {! \- [. C, i5 K& A
$ A* i* `+ d% B! b) O0 D' Z或则如果这样配置的话: error_reporting = E_ALL | E_STRICT  `& `7 f% q3 N0 L4 c$ r
php.ini中有如下设置:& u& K$ B5 F; [' a
error_reporting = E_ALL | E_STRICT1 p  a/ b+ ]- z

- A3 U- `- K+ c这是说,显示那些不符合编码规范的警告(coding standards warnings)。
" W: |) A! f. m# X' V' o+ CJoomla其实是建议取消error的输出,如果出于调试需要,应改为
. t- Q: G  T$ P! Eerror_reporting = E_ALL & ~E_NOTICE
9 \/ U+ e# s' }0 k- ?* Z; a' c1 ?
2 y- o" c7 r1 `0 D* |* L( w问题得到解决。4 w& t- Q; D2 \( W+ G8 c$ R
( ^, N; s" H8 z' ?

1 o# X/ k# X4 \: R. GEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
8 N6 p( c% Z; |$ T! V" Nphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));& Y- n2 b) |3 w; g) Z- Z+ n
改为 :! j3 J( u% s/ x+ h! k  N
$extsub=explode('.', $tmp);$tmp=end($extsub);) i: `4 j5 H' J+ t# b+ \/ Z" l
9 e' z1 M. U/ Y" L( O7 a; y
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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