搜索
查看: 20507|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
8 \4 j( z7 t& g9 J1 N, G. d5 w
 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 错误
% W$ t! h6 H  ]0 q' \  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
, W8 W' t; y- H% E* p+ O  1)将function gd_version()改成static function gd_version()即可。
& Y1 M; |0 q2 N" h  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:- b# _4 g' O8 ^& k0 s2 K- |
$p = new cls_image();6 t9 k, v, h6 X; q1 F; {
return $p->gd_version();
2 \0 q. `# ?! }/ ?( b3 F) W8 q; P/ M8 s, Q+ Z2 Q" x2 b

, b% J. p- I/ A& N0 n2 _下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:/ @3 p1 S& k+ S
安装进程已中止
, h* t# ?" I3 _- l8 |创建配置文件............成功0 u( {" X( Y- p4 X
创建数据库............成功% V1 K& f9 _$ n3 h; N+ z  P" f
安装数据............成功; y! Y4 n8 b& S) S/ q3 ]
创建管理员帐号............成功5 l# S6 U0 A4 X& ~" T8 r# @
处理其它............失败8 q- x) H* x% c/ c- s* Q; A6 T/ ^

4 a; B: Z) _0 B/ I1 b* NWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5288 }1 D" |6 h4 K* `. S: [
无法创建目录,无法创建目录
" i- D/ J$ G% S2 x6 ?8 |解决方法如下:
; a7 }/ h2 K$ z+ F1 i+ G点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: . `. @6 Q+ o  F$ H; V4 q
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。; r* z$ s0 ^  T% O8 ~; P7 V
不安装测试数据库一样可用,一样正常,不是问题.....* ^  x: B3 X+ y% R  X
愿看到此文章的朋友能解决问题;
8 r5 x; \8 H8 W1 C' q, l, c" m2 e. O' E; {

; ]- Y) x% M- ~$ E6 Gecshop如何解决includes\cls_template.php on line 418错误
( M# V8 {  t& P& k* ]5 E& J# {2 K  p+ L. w: G. \4 s. Q
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
2 v9 {1 w! G& i( R, V2 ?. M3 CStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
, j) @7 q+ n" w/ |0 m6 x第418行:$tag_sel = array_shift(explode(' ', $tag));  c/ R1 a. s# y. `0 y' p

6 U! f+ x; K' ~$ f' U1 j# F. I解决办法 1:& N7 O( e* D/ _+ {. c0 G! c
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
* b6 Y% B3 |/ l7 k, Y; c! U3 r
$ I7 q: A5 a+ i& Z) a2 I$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
. o7 ~+ z; `1 S5 C(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值- a; T3 C. O2 P5 b# Q. L
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决; X/ U6 J- M6 B5 e2 p9 v. `

/ V  h; }# r& |如:, Z4 R1 m9 X2 N; R7 a
function get_dyna_libs($theme, $tmp)
! A$ @; s' p; D7 Y: D& Q0 y{
$ L3 W- z8 {3 M  b5 [! E$extsub = explode('.', $tmp);
  r) A4 {: |7 S1 H2 K3 M$ext = end($extsub);6 V) q* I" c1 N( k  S6 C1 p% Q& r
$tmp = basename($tmp,".$ext");- A* j* O7 V2 Y- m
$sql = 'SELECT region, library, sort_order, id, number, type' .' g  D1 I. u, U4 H
' FROM ' . $GLOBALS['ecs']->table('template') ., v8 B8 A0 D. }9 O! l# e
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
) _9 K! u8 W- k7 E* i; x' I7 O' ORDER BY region, library, sort_order';
5 ^9 [0 e' J8 h: j6 m  H* o& m$res = $GLOBALS['db']->getAll($sql);
9 w) j) U* v. v5 E7 o$dyna_libs = array();, f% T& S4 F) l% \# L6 R
foreach ($res AS $row)
" o9 P! K% a& D" e* Y' k{
$ P! Y. p3 a2 g# U" s+ s$ A2 G/ Q$dyna_libs[$row['region']][$row['library']][] = array(; r' l* m; Y2 v- \5 m9 h; R, W# E
'id' => $row['id'],( W* g" g, e0 |$ ^
'number' => $row['number'],
. D/ F" C4 S6 r' m1 C; s* C7 e'type' => $row['type']
4 k% d$ J7 ?1 P);
6 ]. R( B# v* }1 E! `% _9 J0 O: Z}7 d2 Y' W! c. l, |
return $dyna_libs;
) ?- Q% ^* H$ w7 A}/ P; l7 T/ |2 O: O! V

5 ?# x5 W# S- o' D) a) U) T6 S2 z将$ext = end(explode('.', $tmp));$ Z/ o& u3 ]( c% j; N
改为
& h+ Q, c9 y/ a3 O+ Y$extsub = explode('.', $tmp);* y  o$ ^( ^' E7 i7 @6 \
$ext = end($extsub);6 q! X, j8 u( Q9 v, U

% y0 T" y0 z. p' p) b解决办法 2(屏蔽错误) :
4 |. P: I& _  x+ |9 }8 t ; b; v, g+ q" [# j% p5 f, @
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
8 ~, P) f9 y5 \4 k' \; s$ V3 @3 iphp.ini中有如下设置:6 y+ l4 R8 l8 `$ Z5 q! _: ]
error_reporting = E_ALL | E_STRICT4 \4 P2 p9 L" w# {7 p. B
* ]9 q8 X' l8 Y( l6 X/ o
这是说,显示那些不符合编码规范的警告(coding standards warnings)。7 H9 y8 \0 E% l& Y$ x7 ^/ x
Joomla其实是建议取消error的输出,如果出于调试需要,应改为4 G2 Z- @5 F) G: [
error_reporting = E_ALL & ~E_NOTICE
! C+ n9 s- W( [
5 x: O5 _% L) k2 ^' B+ \* [问题得到解决。/ d+ Y6 J/ o. Y: e& y3 ~

$ ^) t  T- a! n0 y- ]* d& |% ?
+ Z) P6 @) w" Q+ x1 }6 yEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line2 l8 K; A2 i/ ]: Z- I; U# N& P$ j
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
! X4 b. c6 Z- h: S0 w6 e改为 :
. V2 D! G5 j$ ~/ @* ~0 e0 `4 Z4 N8 [$extsub=explode('.', $tmp);$tmp=end($extsub);
; v3 I, }7 R; b) V' G; r: A6 J- N
6 c! }% \7 I" Y9 D5 k! `
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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