搜索
查看: 20304|回复: 0

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

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

% J0 \0 I5 B- f8 G' h! S 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 T3 e$ T, a; h: A( \
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
+ U& P  A% \! [& C  1)将function gd_version()改成static function gd_version()即可。- z' L; G7 P* R( ~, n7 ^
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:/ n3 W8 A: ~: C$ {
$p = new cls_image();
% d6 I5 \: }& _% @/ }, e5 |return $p->gd_version();
* Y- Q2 r& }0 `* Y* s; A) b
6 x8 Q: c; i2 K. N+ x5 [1 ^: ]- z& F; U: v5 j1 d
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
! \: b8 |* y& @5 ]/ }安装进程已中止2 L( R4 u* H" r5 c) E
创建配置文件............成功" d7 d, q% V6 ]+ S  I
创建数据库............成功% f- z9 _& v$ q% E9 D. u3 c
安装数据............成功! k6 B, g3 U1 S
创建管理员帐号............成功9 V  `$ Z& Z& f
处理其它............失败3 U1 l" U6 U4 Z; G# Q

( t! e5 w) A( W, y* M1 l9 x8 kWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
3 M) `, g/ Y9 C7 }/ |5 ?无法创建目录,无法创建目录
6 i  N( E+ l1 }: g解决方法如下:) k% Z. v& J6 m5 W
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
. @+ Q, g8 c/ n: ?(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。9 E7 i0 I5 m. c/ \* _$ g% I# }
不安装测试数据库一样可用,一样正常,不是问题.....% X% J( r& S1 I5 |1 L
愿看到此文章的朋友能解决问题; 7 A: _3 v0 N  v- y5 c

" F+ P: D; c5 K6 }8 A( m- I6 B  A% C; U; u) Q% N$ \5 `
ecshop如何解决includes\cls_template.php on line 418错误: y1 I. Y. E9 u5 ~. t5 j

8 D5 Z9 z* J! i  @8 h9 b之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:3 \" I1 M1 R( U) \" \5 U
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
% ^* }' S. b+ _' w5 b0 n, m第418行:$tag_sel = array_shift(explode(' ', $tag));% e) L  _" h( B4 i7 g& n

* O' S6 f. s- g解决办法 1:
* @  V2 A3 d" }6 s5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
8 _! x5 H, d# M1 b
8 O& f4 h+ c" ~! w1 |+ l# `( @$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);! P$ R+ [  q1 ?
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
$ n" w: n& o  ?2 w* Q9 k同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决. d6 h% Z& K& ^- H6 R1 r  m
5 Y( @8 x; y' m, r. A  g# X4 E
如:
. |& D  ]+ Y& \/ ?$ f. ?function get_dyna_libs($theme, $tmp)
. \$ ?) B4 [* E/ U{
- `$ W; O% ~8 E% f, t$extsub = explode('.', $tmp);
3 j. P( i/ J* k5 z  M7 J$ext = end($extsub);/ q) q  q$ Z6 S+ x1 i, P7 S, G( s( G
$tmp = basename($tmp,".$ext");
) h- w4 r% o! N" d( O- y7 k$sql = 'SELECT region, library, sort_order, id, number, type' .
0 x; d: M5 R# w' FROM ' . $GLOBALS['ecs']->table('template') .
3 J  A. t; x1 v4 U) i  m5 W" C" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
; ]' }5 K1 {! K7 A5 }2 S5 e  r- |( m' ORDER BY region, library, sort_order';8 q. x1 [3 G$ w7 q9 a3 p, K* v
$res = $GLOBALS['db']->getAll($sql);
% w& u  H( E& E$dyna_libs = array();
3 i& R* B5 p2 n% I# Mforeach ($res AS $row)
; |5 ?  [& k' p* i9 O{0 y  T$ S+ O1 d& X+ }
$dyna_libs[$row['region']][$row['library']][] = array(
0 W4 r) b9 Y* L0 g'id' => $row['id']," g+ ?, N7 m# D- U6 U, {
'number' => $row['number'],
( t1 U! K& J. f# z9 N% ^'type' => $row['type']; F  T7 V+ D- z! N" D
);
( P1 g6 g0 l, D, Q+ s- z4 X& L}7 q" y. G& p3 p8 Z7 l0 A/ M- C
return $dyna_libs;
! L( ]4 j$ L$ \3 b% O. a  h}
1 p. f4 @* G/ K5 ^ * k( n" y" w2 X- \5 p- A
将$ext = end(explode('.', $tmp));& S  k4 E# A7 |, }
改为
8 W0 B4 W( D. s. o$extsub = explode('.', $tmp);* |! U, E- ^# ~
$ext = end($extsub);7 o- k$ K. g5 D0 {

% @$ O, P6 |7 e3 T2 f; L解决办法 2(屏蔽错误) :5 ^: V) B9 B5 i0 J  v, R( S4 }4 i
! I, N' j1 U6 T) k
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT- c& l3 n5 |$ o( o. @2 c
php.ini中有如下设置:
4 t: g0 _8 M  \  z; r6 V  b# b3 T, Jerror_reporting = E_ALL | E_STRICT
; \1 {9 r0 L- n & i  T4 {* Q9 ?
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
. q- @+ q) M  Q8 n! [/ `1 hJoomla其实是建议取消error的输出,如果出于调试需要,应改为
% _  i: [) ~/ q' J* ~& kerror_reporting = E_ALL & ~E_NOTICE4 ~9 a  d- h# Q# T) C$ @+ W+ L% p

# y( M. N+ x9 v8 q- B5 w; I" J- _问题得到解决。! b' K, S7 v& p# C" b+ [3 Z

9 _6 b+ w! G# F6 D* i4 E0 S
% L( v" t/ B8 j; tEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line) H7 O& K8 z4 v$ L- d  u& h
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));" E1 T* @9 T/ F; a3 J
改为 :
* f3 h7 J% \7 }: b: m$extsub=explode('.', $tmp);$tmp=end($extsub);2 \) }$ ~5 G( ?3 e5 B

5 D0 x( L) j+ j" U. W0 o) [
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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