搜索
查看: 20270|回复: 0

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

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

7 @1 m+ r* n; h) r; u, \6 ] 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 错误
0 f, p9 A+ h4 n  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:. H) v( s$ O) a7 p' }
  1)将function gd_version()改成static function gd_version()即可。
0 `# j. O* |% Y$ X. O  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:/ k0 l* C- [6 a# C# ]" x
$p = new cls_image();  E9 w4 I2 w2 A7 j, v; V: \/ d- u
return $p->gd_version();
$ g) r7 I6 A- p5 [- r/ G. p$ h/ m0 |( N2 m9 J: j' N

9 U& j6 F/ ^; O# v7 ?$ y5 Q2 x. p下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
3 a& s# U: H# A- D! |4 J8 N安装进程已中止
# ?- ]* ?1 [, i) F$ R) x4 p创建配置文件............成功- t. ], w4 J9 Z% x4 ~2 a1 `
创建数据库............成功
. z. j2 F! d, d- z安装数据............成功+ A" U/ \+ Q- Z" G. t
创建管理员帐号............成功
7 E, k5 n4 @: D+ `' z% M6 q0 K处理其它............失败
& K, o% _; Z$ j# e( R7 y" _2 I# J6 o7 b! q
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528& g& O% G1 S( @% Q/ Q$ t/ q
无法创建目录,无法创建目录
1 y3 @) W$ @5 n( |解决方法如下:
% H3 o% U+ s. _: `* ?# i' K" P( U8 s点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: # q8 s3 y6 [& y" P& A6 ]% J
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。# Y2 b$ r+ s6 Q& @$ s( O7 I
不安装测试数据库一样可用,一样正常,不是问题.....! a# g. U3 Y/ F/ z! v
愿看到此文章的朋友能解决问题;
/ r4 C9 Q1 e8 i8 U4 S
( p" g9 z  G5 C$ Z
* J" u9 j0 ~2 X3 \6 y6 Hecshop如何解决includes\cls_template.php on line 418错误9 _. d+ @7 C) w2 G

) u  z/ R+ n7 h/ p之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
% _; o7 I" e( V' _) q6 e; jStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
. K! U0 M+ Q4 @5 d, J第418行:$tag_sel = array_shift(explode(' ', $tag));
" Z( i8 ^' o  Z ' {3 p; I; @7 _2 D5 M5 g5 k
解决办法 1:* u9 M$ m' }  q
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
4 f2 V; m! M, c * z& q6 Y: T6 K: {: G
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);; A# @! H  _6 y' a8 A; L+ {
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值' e, J# L0 j- U
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
( c9 \* R& b/ N& d5 }6 m 1 N' b9 Y! e! o' o
如:1 q' C; |! {0 {
function get_dyna_libs($theme, $tmp)$ r: H8 Z, v; F2 {$ Q7 e2 G
{
0 [" g5 U: F+ V( z* m$extsub = explode('.', $tmp);
! M- n6 @4 `# @& E3 ]; m$ext = end($extsub);* R6 I6 w1 F  _$ F8 \2 l
$tmp = basename($tmp,".$ext");
7 l8 P6 q* ^) j7 f8 d$sql = 'SELECT region, library, sort_order, id, number, type' ./ V. J9 {0 w2 D& m* x
' FROM ' . $GLOBALS['ecs']->table('template') .
3 l* @# f  G# p/ T2 u0 a" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".4 b6 P; {' ^5 ^9 z4 x" K, s3 S
' ORDER BY region, library, sort_order';
0 k8 v5 X! t4 v" J" r; @$res = $GLOBALS['db']->getAll($sql);& P8 x) V$ }5 A7 v
$dyna_libs = array();
/ t1 x( Q& I9 U6 q3 @) D3 sforeach ($res AS $row), ~3 r6 N; u  j/ Y+ C8 D
{
0 V" m5 u# `& `$dyna_libs[$row['region']][$row['library']][] = array(
  h7 u) y' k( N'id' => $row['id'],7 E* `9 V# |% G. |1 a4 o
'number' => $row['number'],' g$ m$ y- l+ Z
'type' => $row['type']) d3 Y; L  u3 B7 U1 P8 x1 k& t( r
);  F5 _" M1 c( w7 W% X! a: k0 G( i! ^
}8 ]3 g/ x2 q' O
return $dyna_libs;
' D, B$ j, O: y9 B}* I0 T0 b4 ?6 e2 w9 U0 f. O3 c2 \) E$ _4 D

  C/ j4 S  l3 B7 E" {) T- [0 z* s将$ext = end(explode('.', $tmp));0 p2 B' A/ \8 c3 n  h. s/ d' r. j9 l
改为
6 N0 r, |$ `0 `9 ]" P$extsub = explode('.', $tmp);
, y7 @8 r3 q% k  v1 Z$ext = end($extsub);( N7 v3 s, _! S6 {' J1 N! E
- }0 b1 i0 l7 F
解决办法 2(屏蔽错误) :
# u, O( r% w, z  N5 t2 H- i7 K, i  T
5 B7 v! t$ }+ h/ |或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
; Y2 j' m5 b1 g; S3 l) gphp.ini中有如下设置:
% j7 w$ a1 |- _: e6 R$ ferror_reporting = E_ALL | E_STRICT
( A  z9 u4 N3 p: c3 G5 ~ : ~: L; ?- h# _4 @
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
- E7 v( z: d7 K% q0 ^' T; T1 OJoomla其实是建议取消error的输出,如果出于调试需要,应改为* Z2 a; ^- s% i4 I/ q
error_reporting = E_ALL & ~E_NOTICE  r! I1 F& H* M& l+ B2 m, I, k% `
( P/ B# d7 O! v4 s' R
问题得到解决。/ ], e, j/ u$ |, D; x; g/ {
3 P" p; ^9 {* z9 @  o1 P  G+ ?

# U" ^8 M- D3 gEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
4 z$ h7 {% k% R" X" _6 F  ?4 Wphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
' \5 {) z) r& c1 \7 `8 I改为 :
8 d" z3 W" W, {$extsub=explode('.', $tmp);$tmp=end($extsub);0 @! }$ o( F% @" t3 m3 M8 M7 ^1 |, {
8 Q) F/ M3 @; }( @& Q. o
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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