搜索
查看: 20341|回复: 0

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

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

( [7 R. F* V$ p0 y: `+ `# a 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 错误  L& m% B. o- T6 o3 F- U* h# ?
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
- e. @6 J; w0 y% Z  1)将function gd_version()改成static function gd_version()即可。. ]! {5 @* b0 D  w' O3 I! {# v. d. Y
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:. U# ]% T$ j9 T# z9 A
$p = new cls_image();
8 l/ `+ L! x1 `5 p7 N; S$ zreturn $p->gd_version();6 P, x8 i" }5 }% b1 P

2 p2 Z" y% Q( S. j
7 k" T2 Z4 Q% M& q, E; q下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
, |( _/ X! c5 O* ?5 [- N安装进程已中止
' L+ J0 s7 m& H; L创建配置文件............成功& W' f( J% _7 _, t7 g% o/ T7 d1 S
创建数据库............成功
( p1 V# R  U% F+ o) ?" {; c安装数据............成功
! }6 U  V5 j; \  e创建管理员帐号............成功% D$ z' B1 G# U
处理其它............失败
8 x7 q% e2 g0 O' B" \
9 ?% N% B) H9 I8 h, ~- J* Q  Q# cWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
7 x3 u. H  Q% `$ M6 m( b% s无法创建目录,无法创建目录
! A1 |+ R$ M/ @3 g解决方法如下:
0 x" o3 ]  }, T5 n& r) g点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 5 l* q; k6 E) t& Z1 }
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。+ v  r. k. u( Z& z2 _2 t
不安装测试数据库一样可用,一样正常,不是问题.....8 X( Y) D# z- o( M/ C* D# ^
愿看到此文章的朋友能解决问题;
5 h1 A  {" O& g1 E+ p+ I! d! e0 l" K; f0 d7 c. W

4 I% z& I! W- ~  C# S4 m4 h  j- vecshop如何解决includes\cls_template.php on line 418错误) I5 k& X, ?0 F, K4 P0 m

/ G; ~6 s: ~. w+ o之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
* W$ h& y+ c, oStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
$ H+ Y2 C( \% v9 b2 @第418行:$tag_sel = array_shift(explode(' ', $tag));
3 G5 R4 A! q+ P 9 R! A2 M% H2 Y* ~0 H) H9 ^% D1 P
解决办法 1:8 n' T2 }. ]: N0 L( g
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
% `( z9 S- g. ~( G
& A& e0 I# D' j$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);+ ^5 M+ S- c" {
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值# y1 ?$ t# U8 ?1 z9 ^
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决% i2 w0 x" a* w. [

. Q7 D+ r. a3 C4 G8 D如:
, m- V5 G5 D4 D- z' Lfunction get_dyna_libs($theme, $tmp)% x+ N7 R2 w! I6 ^# Q* W: }
{# b$ }9 C, \( ~! `9 ~
$extsub = explode('.', $tmp);* N7 k, U2 u" T3 @8 Z9 {
$ext = end($extsub);
; f  z; E+ h* B: U* r& N9 Y$tmp = basename($tmp,".$ext");
! k& N: R: x8 U3 i$sql = 'SELECT region, library, sort_order, id, number, type' .
2 D3 l/ v2 i" ^% y6 n' FROM ' . $GLOBALS['ecs']->table('template') .
" C" f$ s1 W+ M( A$ ~5 b' s" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".! d% d8 m& s! Q& F) d
' ORDER BY region, library, sort_order';
1 K! V4 A5 h. G; ^& w0 V7 b# h$res = $GLOBALS['db']->getAll($sql);0 X9 `& G( o2 u  x5 ]
$dyna_libs = array();1 d" \; x" n  }# ], y3 x( R
foreach ($res AS $row)+ D. J# X5 _, T
{# U* W: }7 O! Z5 m, G
$dyna_libs[$row['region']][$row['library']][] = array(# `6 \0 t5 [: P5 R/ r% a& U( W
'id' => $row['id'],
+ D  R# E( G, F1 V'number' => $row['number'],
$ ^9 _, Y" V( X+ Y) f0 F9 V'type' => $row['type']
9 e$ h" d( \! i3 _' j);
% s# U" z- }, t) c% y5 g1 H1 [/ d}
' ], Z4 G0 B/ z- z; T, V0 r* ~: k/ Treturn $dyna_libs;
4 z" w5 ?/ x- c" l. `% B. D}* ~4 J2 v+ ]( S6 r) ?! l

, c3 t; U/ l% g! m% d将$ext = end(explode('.', $tmp));/ H9 P# S( n. ?# B& t: Q$ b
改为
9 {* O1 v$ y9 O% Q3 u3 W6 `$extsub = explode('.', $tmp);
% L# K; f) \+ [( T  I8 n  i$ext = end($extsub);+ Q1 z" [7 F2 k4 Y1 Y1 F% l
: h! L( y+ U* I& t( T8 t8 B" T$ M
解决办法 2(屏蔽错误) :
9 ?" w6 K: r# ]/ ~0 H! o$ }
8 q! ^5 v/ q# z0 L) f, t6 Y或则如果这样配置的话: error_reporting = E_ALL | E_STRICT' q9 g" n1 R- Y9 v5 L
php.ini中有如下设置:
2 ]. g: ]- c* c, d! y/ nerror_reporting = E_ALL | E_STRICT
0 c% `+ c! p0 ^7 i ' a6 C3 K, _( j
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
5 K! {0 h/ ~6 S' [& h0 a7 xJoomla其实是建议取消error的输出,如果出于调试需要,应改为3 H; H5 Z. H4 H
error_reporting = E_ALL & ~E_NOTICE5 e5 B/ v7 u" K0 S
5 o# I6 z" m5 k' O) u
问题得到解决。
7 D+ s! X5 O* H; e
& w2 t3 T9 h& c& [* n  P! f$ j; q% B. ?7 n  S
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line8 l/ ^6 T3 b5 c2 W
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
% \( T$ o8 J/ V0 E* r2 o! s$ k. D) f改为 :1 O8 E9 \% j9 F% h
$extsub=explode('.', $tmp);$tmp=end($extsub);. a$ V: R4 q3 v" I9 F& n: e

  {; W' R3 Y/ s& Y0 q+ ]
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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