搜索
查看: 20315|回复: 0

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

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

+ w5 r% O; [/ Z' @1 K4 V 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 错误
8 O3 \: |$ |: |! R  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
  V" J0 {# u5 B3 p4 ]# P7 F7 R  1)将function gd_version()改成static function gd_version()即可。
: z* Q, ]' R# Z! t: t  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
/ O8 u- O" O3 b0 {6 r$p = new cls_image();
- M* p1 s/ a$ j9 lreturn $p->gd_version();
7 B2 p" w$ \& r# b
+ }  K/ n' G, O" k1 M7 ]9 |6 }( u" s( n( C% k" S* T2 j2 f
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
" d% z3 V: s4 Z- E安装进程已中止8 a: @/ f: R. _0 Y. Y
创建配置文件............成功$ U" A3 g, u9 c/ a7 A
创建数据库............成功
) j* x- n6 _/ y. n! _0 O安装数据............成功
! g/ t: t3 Z! Y, [创建管理员帐号............成功
- M( H7 a5 U( z5 Y9 `( D  w处理其它............失败0 j9 b) r+ l( |3 {( A7 W
6 X: ]4 m. o- h( a
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
$ [4 {. u4 D% O+ L+ x# Z无法创建目录,无法创建目录( `  C2 G+ G6 d% T* m8 A
解决方法如下:; G7 q* v' l+ l( V1 n5 o! x
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
4 N  `4 f3 V; g5 E8 [/ z) {(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
  Y$ {5 e( O. R' G4 N不安装测试数据库一样可用,一样正常,不是问题.....
" G) ]% }3 ]3 M) ]0 L4 \2 u, d愿看到此文章的朋友能解决问题;
+ }  T% `( J+ a8 @* _* R* _6 O4 e* T- A3 d1 z3 v
: H% D* _6 g2 X, z
ecshop如何解决includes\cls_template.php on line 418错误
8 i( Z8 t$ n$ o# y* r# c
) K: U2 L9 e* Y3 ]之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:" p! L2 Z& I, @. L# X$ r8 x
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
) c& E3 o) _' f  U, W$ ^第418行:$tag_sel = array_shift(explode(' ', $tag));; ]; q. o" V/ m) w2 t+ _7 R

; Z1 s( y/ W4 x8 m: ?) T解决办法 1:4 m/ l8 m0 R  b0 f2 m
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: , t- q6 L& }* {$ Q0 ^8 |3 s
) r( o, n6 U3 E" Z7 ^$ u' ^
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
$ Z4 c8 X& Q$ O2 d7 M# o(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值" ]' |+ j  E5 @- L  e5 J
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
& a( F& d/ h) }6 K; u7 Y) ~) h( S0 g
: ^' a1 [) T! q# k$ c+ M如:/ M3 |& Y& }. J: V
function get_dyna_libs($theme, $tmp)& Q! [& E( ]+ o  m) c" e. ?
{; W5 P+ l+ Y* _: }
$extsub = explode('.', $tmp);
2 ]0 q. t$ d  I  I+ a% U) C$ext = end($extsub);3 A" W0 D4 D2 |3 T* W: a
$tmp = basename($tmp,".$ext");+ R& t: ]: E3 I: G  y
$sql = 'SELECT region, library, sort_order, id, number, type' .
) t& I! D' }2 @4 e0 ]' FROM ' . $GLOBALS['ecs']->table('template') .3 t. |  L+ |5 I5 Y% {0 u/ A* }
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
- ]7 P3 @# s( O3 @3 m' ORDER BY region, library, sort_order';
" l7 e4 Q; U2 E$res = $GLOBALS['db']->getAll($sql);% K! M& k9 K$ _6 U6 M
$dyna_libs = array();8 s, i" Y4 Z. T& h: M/ _
foreach ($res AS $row)
& T, e; d& N2 ^, @/ [{4 |- U6 }7 Y5 x& L, L+ B: T
$dyna_libs[$row['region']][$row['library']][] = array(
: E7 Z' y  d* t0 |6 V'id' => $row['id'],) H+ n1 a0 A) q9 E
'number' => $row['number'],( D1 L4 v3 I" c8 l. h
'type' => $row['type']. R4 `7 g% z- ]# j- U; R; {
);
; T; v& ~3 D/ \/ r; W5 |}/ q0 i' r. [; a- s" [6 S
return $dyna_libs;* j6 B8 I/ `5 n. E6 C& _
}6 N7 o+ x! _' f! z! V; L
: L' n: Q5 D- V8 L; K# {. ^; o% j
将$ext = end(explode('.', $tmp));
7 @" \8 A; Q9 v! X$ Z" O2 C' t改为. u1 }+ \5 E+ K, p6 N
$extsub = explode('.', $tmp);# [+ u  p5 u, y
$ext = end($extsub);
' E+ m5 J5 g2 {% L4 g7 v8 {4 _6 X
1 ^5 p: c9 h# A+ j5 P  n解决办法 2(屏蔽错误) :: G; W, j$ |# P( n

3 o4 _/ g2 n  D1 M或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
! w' j( t- j  _" ephp.ini中有如下设置:
. o6 h0 G: g! v" J# }4 Merror_reporting = E_ALL | E_STRICT: H& W, K1 a/ m4 r6 P
% q9 w, q! v$ o9 D9 ^" }
这是说,显示那些不符合编码规范的警告(coding standards warnings)。$ Y6 Q' \2 p; j7 C! t/ ]/ G. g. \5 u
Joomla其实是建议取消error的输出,如果出于调试需要,应改为& ?8 O5 F2 L* y
error_reporting = E_ALL & ~E_NOTICE
' U: V4 t' r8 ~2 M, M" ~' V
$ z2 `! K  }4 ]  z9 X; ~问题得到解决。# `3 j6 ?) j4 x9 w  x+ w
8 Z& W, A8 w2 E# v
$ Y1 p3 r4 r# G- m5 N
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
/ W+ [. l* }# [/ ~& o( Tphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
/ z9 M! Q6 h% p. A3 `改为 :4 c$ S: R' L/ t4 Z) F0 s
$extsub=explode('.', $tmp);$tmp=end($extsub);% K7 {! x* X, J! l  |! Z

+ Q$ O+ {. M4 O3 G. L
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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