搜索
查看: 20242|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
$ Z1 ?) {) b" {6 L9 R; K
 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 错误  `2 S( {* C% r; x" b
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:. k9 m! C2 w7 S! b
  1)将function gd_version()改成static function gd_version()即可。
7 V& I; B& o" H( o  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:. k4 w, m) L- j0 y6 F& M& U# _& i
$p = new cls_image();8 s6 [" `$ v, S7 R0 _. R  `
return $p->gd_version();# O$ ]: E- c6 L* p; a* f% L+ o

* @4 c# A6 `9 ~9 ^* o, G, g$ U' h6 O9 E& L" r, E3 Y
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:3 ~! x5 ]' m6 i: G
安装进程已中止
2 g1 R1 j  D# `4 U$ H创建配置文件............成功3 s1 `6 X% o$ j' H) R9 t+ G
创建数据库............成功
, G7 ~6 [1 C; n- U. F% ~安装数据............成功6 `4 d, B6 ]2 K7 A3 w0 k! z
创建管理员帐号............成功8 h. p0 G& H1 j
处理其它............失败" g( n# z3 J/ E
/ u8 Y, ^, C" f
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528% @' ?& F5 {+ S6 f/ }3 d
无法创建目录,无法创建目录
* G- B+ z2 B/ e- I7 j/ ?$ X% ]" ]解决方法如下:  y# _& y/ [8 j2 H; W. \
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
9 }5 ]) f  V# B7 T(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
  h7 W* |, p( }* {. {不安装测试数据库一样可用,一样正常,不是问题.....
, {! {/ q: W$ Q. S) Y! Z愿看到此文章的朋友能解决问题;
$ ~6 F: _, T% G7 o0 W
, Y' y' n4 h' U! j+ g9 K( I3 t5 l6 `" F( ^5 z; |
ecshop如何解决includes\cls_template.php on line 418错误
4 ^' @- V  D2 E5 F, `, `0 q( B2 `( ?  \' r0 s1 o
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:2 O; S5 h" S4 m8 k
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4185 @4 ?9 O0 w' H5 K8 x8 _
第418行:$tag_sel = array_shift(explode(' ', $tag));- d7 J( G8 \3 x( X3 X
, j4 U( H9 |0 J0 `8 n8 ]! F
解决办法 1:
. R$ k! K: Q5 }) n( ~& I& S* S+ R5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
% Z  G/ _. ?. Y9 k$ f  d& V; n
3 e6 U3 G# i) B$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);9 X1 b7 k1 U8 w( _# y" j
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值/ D! ?! Y) X/ q) f
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
4 H( j: o* ]0 T: O: q ! v+ C3 N- C, z% t: R( I$ T$ ?* J
如:
7 F8 }# k# g4 q7 C  m( Wfunction get_dyna_libs($theme, $tmp)- u9 b8 p2 `3 J, y2 U  s
{
/ R! ]+ _$ q1 i* F: ~" s$extsub = explode('.', $tmp);
& Q) ?: x, o7 p; W& d" O' E$ext = end($extsub);# Y6 m* v9 ~' x
$tmp = basename($tmp,".$ext");$ L. |  X5 P* H
$sql = 'SELECT region, library, sort_order, id, number, type' .5 Z. x2 ]1 \( ^7 {& w
' FROM ' . $GLOBALS['ecs']->table('template') .8 W0 e% I3 r4 {4 f
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".+ x- l- C/ F1 ?* G$ M; C
' ORDER BY region, library, sort_order';
" S4 ?. j2 C" j; d  k+ p" x$res = $GLOBALS['db']->getAll($sql);) Z, o8 _& b* S2 i; f
$dyna_libs = array();+ z( h* W5 d3 s3 u2 m  P
foreach ($res AS $row)
# l1 p6 l/ Z5 F7 U{
  K- y3 a' g" E7 K2 x  }' n& u0 ?$dyna_libs[$row['region']][$row['library']][] = array(  D! J3 _  a4 e4 _0 m# }3 P+ @# D
'id' => $row['id'],* d+ U% E7 M" O- n
'number' => $row['number'],- u& A" O: t" _6 N" W( I0 @' F* o
'type' => $row['type']
0 \8 E" ?- Z; y);4 ^- p& r. N; K' M7 \2 j
}0 [# J4 Z& h' I6 u
return $dyna_libs;
* K% ~( U% }# _" J* ~}
1 x$ \. J7 X$ q 3 \/ Z( ^* f! B
将$ext = end(explode('.', $tmp));! W0 ]. H7 A3 A, ~6 y% |
改为# U1 L# e  ?/ ?+ {5 h6 _3 P# _4 f
$extsub = explode('.', $tmp);
. e, z) ^# N9 {7 a( D$ext = end($extsub);
  ]2 u  Z$ w5 j9 C
( k' g( S& \! j6 P  m/ H解决办法 2(屏蔽错误) :
! j0 L6 |/ O: s, l! {, m! x ' c% D$ h( |  F! Y' S" z( `1 }! ?$ O( Y
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
$ d' _( `; v4 G0 {0 V, w$ Wphp.ini中有如下设置:. W4 G3 H0 P* I: l: F
error_reporting = E_ALL | E_STRICT
% B3 K0 ?; m7 o, J/ J! i, j4 W  T( t % P: |/ c8 ^) e) V9 O
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
0 i: g% _2 z; I' C3 ^Joomla其实是建议取消error的输出,如果出于调试需要,应改为/ R3 j; u% J. P# o3 @* Z
error_reporting = E_ALL & ~E_NOTICE
% D- `2 t! b$ _2 c6 [: M. W
# w, B; q) W8 x9 i: T3 z: _0 r问题得到解决。
' q# Y  e1 g9 M; W, G: H. x. b1 R3 ^+ J

) L/ Z) @3 E, |Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line& h  R- {5 s7 X& I
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));6 U/ X# e2 h3 T# S
改为 :3 i8 y6 I6 `# s
$extsub=explode('.', $tmp);$tmp=end($extsub);$ a! Y$ @* g+ S1 [+ p' _: q; t
) H0 N( B* U4 J# R+ z" K1 S
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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