搜索
查看: 20442|回复: 0

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

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

, `+ }; I/ U: l6 t8 J 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 错误
; H: ?3 H$ F% j& G5 S# e  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
- N9 G# M8 J" I, w/ z  T5 s# _  1)将function gd_version()改成static function gd_version()即可。- |( F, }" @  [# g4 j8 g
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:# I' p+ n: `1 ?2 j9 Q1 ^; J
$p = new cls_image();4 K7 f- Z7 \8 U" _# H$ c. {
return $p->gd_version();# v7 k. G& u# n- }1 k

( z( a$ O: M9 f8 M6 l9 ~% c( M' y  w+ ~, k2 J
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:! @3 y% t* E8 ?: Q8 @. ?
安装进程已中止. o( H7 E) ~3 T" z, S& u* m$ b
创建配置文件............成功6 n5 e' m" R. U+ q1 U3 n3 h0 T  x3 O
创建数据库............成功
! a) R% X9 z9 R$ `安装数据............成功
' v) w) C6 o0 n" g8 A. P创建管理员帐号............成功" N! `) U) G2 C, D; F
处理其它............失败# J. m+ M" f9 O% S6 h6 h7 z

, o% w2 R1 b$ lWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
3 I" o' y: @: P3 {' y1 P6 r无法创建目录,无法创建目录% k% O/ ^+ d3 w3 o! U( i) _
解决方法如下:8 {: f+ `$ k1 E' Y7 O+ x
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
  ?* x. c* U2 V7 n/ d* [& E0 J" W( D(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。- X, h0 Y5 c7 I4 h2 [
不安装测试数据库一样可用,一样正常,不是问题.....
. M4 f. R' b+ H9 Z6 c' w! c$ s愿看到此文章的朋友能解决问题;
# C3 B3 ^: f1 H9 [5 a- y  G9 N
* P, a2 h6 I. S# q
ecshop如何解决includes\cls_template.php on line 418错误  @7 Z$ b; r# _) R8 p3 o

8 U2 [9 K8 M6 v, X/ q" B1 D+ U6 V之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:: ?3 e, J: A( h' x
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418$ A0 ~4 h" X3 ?/ D( Z/ U9 k
第418行:$tag_sel = array_shift(explode(' ', $tag));
9 k8 F$ @9 q' q! `% m" ~0 B
9 n% H+ D8 w4 P4 m; a# r3 S: B解决办法 1:
( m* N7 G' s9 e$ i% f+ H9 z5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
5 c6 @- i! [( U. l0 y- J4 \; c# S
* t6 t( k. I+ n2 L$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);$ F0 s3 M) q1 Y
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
- z4 ~( A  d& W0 B3 c6 [& f/ W同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决; O; d( F2 d" `0 H

# p8 L/ B2 W1 a如:
6 L3 p9 `6 h& w; Z$ {0 o3 Pfunction get_dyna_libs($theme, $tmp); v+ h, c7 E, m2 b9 D
{0 R6 `% e* @4 R  w1 L
$extsub = explode('.', $tmp);  s& |  h) w1 }# u1 H* Q
$ext = end($extsub);; Q, v' k; t% a. q  X, S! N
$tmp = basename($tmp,".$ext");
% N) s3 h! o4 z+ G) h$sql = 'SELECT region, library, sort_order, id, number, type' .; g, F5 _' Z* F6 c
' FROM ' . $GLOBALS['ecs']->table('template') .* {! o" g/ ^* A2 S7 F  k
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
! C( @9 }* |4 F' ORDER BY region, library, sort_order';
7 b+ q: b8 e9 }" ^% y$res = $GLOBALS['db']->getAll($sql);8 Z  B; @9 o2 v5 a* k# @
$dyna_libs = array();
0 W1 V9 W' B- G: g- Vforeach ($res AS $row)+ o. u4 x) _* Y8 h0 j
{
7 t" ^* X* k( J4 }6 v6 _$dyna_libs[$row['region']][$row['library']][] = array($ Y. T) p: J, m) G+ l- I! [" a8 [
'id' => $row['id'],( l7 U! u& M& ]
'number' => $row['number'],5 A3 o; K5 H; S$ Z8 K* w
'type' => $row['type']8 h% v4 r: }$ {$ M) ]
);
9 y! k% h8 G# |3 P( v1 m}3 ]" [; {/ S" e
return $dyna_libs;
' h: ~& s6 T6 T5 o+ S/ G. d0 \8 D}
4 o5 D" b7 J, t& q, r8 U$ a. ?, ]
/ b/ G  U2 S2 I% ]& Y将$ext = end(explode('.', $tmp));# B6 }; j( s( c: y# e! y
改为$ F# f! c" p7 q
$extsub = explode('.', $tmp);) y. G0 e3 R. u* C7 R# `* W! A
$ext = end($extsub);1 |' F1 h& x9 `
7 G8 o1 y  T8 k* k  N; c
解决办法 2(屏蔽错误) :6 k" F# E$ t- x

) U" j/ M; F& A或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
6 P1 X9 K) y1 z/ P8 kphp.ini中有如下设置:' E3 E5 {* D' e
error_reporting = E_ALL | E_STRICT3 s! H8 E; R4 a2 E

: B6 D6 X  j6 M' d这是说,显示那些不符合编码规范的警告(coding standards warnings)。, E& k+ ~8 O" T& x, k
Joomla其实是建议取消error的输出,如果出于调试需要,应改为' X) c1 \, v* @3 B% c, X+ _; W
error_reporting = E_ALL & ~E_NOTICE
+ X; A+ e( q/ z4 N+ s. L6 s
  o! Z% y- E! X6 b" l6 i& v, ], }问题得到解决。
' k9 V2 q* C5 f! P1 f) W/ i* L5 n: ^: a3 [- p6 {6 S

- I$ r. y7 \" F- ~! lEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line9 A5 p+ @* g4 I; ~2 Z
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));* O- N7 U3 L4 A( D6 N
改为 :/ d# U7 D* x( z
$extsub=explode('.', $tmp);$tmp=end($extsub);
  U& W. Q9 D7 L8 {$ i* I! R4 k% g2 l3 [/ D3 a8 Y* J
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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