搜索
查看: 20263|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
: s$ A4 s) D4 v. B4 `: c! 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 错误5 z* T; i; B0 Q$ h# `- G% G, p$ b
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
, p' N+ ?, B: X9 Z6 W- u9 J/ I  1)将function gd_version()改成static function gd_version()即可。  G8 i8 U6 T8 Y0 w5 p1 @
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:0 H$ W4 u( L$ P" U3 Y2 R
$p = new cls_image();
5 ?' C. D0 X- |: \9 f8 breturn $p->gd_version();/ q' q# \, I% W3 O, q! }* b

, n/ Z) g1 E2 X4 P" h/ |& a4 s9 t. `* d: [, B; s7 O; f( j
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
# \( \7 i/ _/ Q( a' S* e& ~' o. R3 g安装进程已中止: W3 t: F# A7 x* W
创建配置文件............成功
/ n7 \. S8 c7 g创建数据库............成功
' Y8 ]; W- |* n1 i& Z! N% s4 w安装数据............成功
% S3 ?( l8 j' i" l& J& V4 q0 e; X创建管理员帐号............成功( i6 |/ W, \5 b* Y  c( `9 T9 N  r
处理其它............失败3 g' @$ [* Q, I2 Q) u2 @: r- x
1 R" v+ \$ k& c6 k  t! o$ M
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5289 `/ t/ W* a- C3 Y4 @5 W
无法创建目录,无法创建目录
; g8 t& e1 B$ L2 }( x解决方法如下:
* k; w7 G$ n+ z: G- O+ e点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
- m6 ?; x7 w6 J: \4 H: Q(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
6 `/ S9 ]+ _) L- j2 P" r3 Q不安装测试数据库一样可用,一样正常,不是问题.....
9 g& s3 N: l) g( U: W' w愿看到此文章的朋友能解决问题; * m& \6 q/ R6 O0 N- b
7 C4 g! c( @! G/ k* m
  n* ^' }. V5 Q( o+ H8 S6 e( h
ecshop如何解决includes\cls_template.php on line 418错误+ o" I- [- _. p; X
9 j# x% e: F" r) j! e7 i
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:4 X8 v* p' W; K) O# y7 t
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
% V; @# [2 D& a; S第418行:$tag_sel = array_shift(explode(' ', $tag));
# m. x6 N5 ]1 N  |7 X0 A% ^6 c, p8 r1 W
6 L2 c4 C! I3 W解决办法 1:9 _, r, O( y: o2 a- m# g/ @
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
! s' V( H0 E% N) h3 G/ d # B) b" d: L& U+ l
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
( m) y$ f4 M6 Z0 A7 t4 P% u# R* u3 L(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
) Y( h* f, W, e2 b( F: |同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
/ R9 B2 W% \7 a9 W
' t1 v$ Y: u0 P. j% E如:
8 G; `; r* b/ P5 Z7 r. ifunction get_dyna_libs($theme, $tmp)
$ r  P" v$ j. C8 I; T% {{% q) `" u" x1 L5 j& p" u1 s
$extsub = explode('.', $tmp);
! @: v% f& h" t& M. g% h  _$ext = end($extsub);
+ c" N8 k% `& ^- h4 o; H8 u, w+ A$tmp = basename($tmp,".$ext");
/ l+ d& V/ B& U( \( }$sql = 'SELECT region, library, sort_order, id, number, type' .( g( \' A- f' T1 Y
' FROM ' . $GLOBALS['ecs']->table('template') .
) d  X) |! B; X% a0 m0 w" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
  Y$ V/ E8 X. Z9 N/ j+ y& |' ORDER BY region, library, sort_order';
8 v( P" z- I' Z, S* R7 W$res = $GLOBALS['db']->getAll($sql);
" W- M- T+ q7 e; V% U$dyna_libs = array();7 c4 ?+ I0 E. l0 A
foreach ($res AS $row)
3 s5 e; Y8 [7 k/ z' e, _" B{8 v& c% S( h( Y7 `9 _" r7 x% o( J
$dyna_libs[$row['region']][$row['library']][] = array(
# b5 ?& K7 B; U7 h'id' => $row['id'],
/ U" p. F6 n  n'number' => $row['number'],2 \& E0 J! {# S7 Y% e+ R
'type' => $row['type']6 ^' W) C' G( e
);
! u, r6 Y& G* V+ P, a- W}  v$ H% d3 r! b  ^6 ?
return $dyna_libs;3 r; {9 Y  R4 B' m: j  h: n; _/ Z1 M
}8 s6 D1 Y  C" @( f& J$ J8 J- \$ m: L3 P
0 S# r$ f4 C4 u: N) w
将$ext = end(explode('.', $tmp));6 J6 l1 r' A3 X1 k' G
改为
9 U, o( U5 z0 j) x* a+ [4 N1 i3 O$extsub = explode('.', $tmp);5 @3 {+ E9 P% @1 J: O6 y7 T* t0 w0 Y
$ext = end($extsub);
  L7 A+ p2 g7 l! @1 z, y) I 5 v8 L, S- t" a* ~& {
解决办法 2(屏蔽错误) :% A: C- q; T4 l+ |3 @
" Y& y: O/ N. T$ V5 O
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT, H4 w! M# }3 ~, T
php.ini中有如下设置:
; U2 s+ M/ I  J( o  Z/ y. terror_reporting = E_ALL | E_STRICT. M  E7 P) ]; A+ n8 x- X4 t- Q/ m! \
9 y0 }' F4 A8 I6 w5 `
这是说,显示那些不符合编码规范的警告(coding standards warnings)。' E2 b6 L2 S2 n' ]6 \8 a
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
  r, c% V+ o5 Terror_reporting = E_ALL & ~E_NOTICE
# s: z9 ^: i2 [5 L* T / ^' ~  g% ^1 R+ ^; X
问题得到解决。
3 A4 H/ O  e4 ]% k9 D+ a* o) x
' j4 y- i6 s  n) t8 i8 {4 }: _& i& F- [* [- S2 ?- Z
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line, G9 E7 C: `, s, X5 a  a/ c* y
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
/ ]+ a2 v" G' i4 I! g( B  [改为 :
; d: w& i6 M; ]$extsub=explode('.', $tmp);$tmp=end($extsub);5 e2 l6 e' u( ^/ d" c1 Z: R; o
' S( j- Q$ ^8 M* W& u; c# O0 e
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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