搜索
查看: 19692|回复: 0

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

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

. {$ Y* Z5 ^8 j# t" H 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 错误' w0 s" k- r8 v8 e( A1 o' A
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
( G; M: ?' J! `1 {5 W5 d8 t  1)将function gd_version()改成static function gd_version()即可。, D) h' ^. x* J' G* I* |, S7 B
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
7 ]3 {5 O% G. g* G, b7 f/ m$p = new cls_image();# O$ H; f) a+ ]% j9 l3 R, ?
return $p->gd_version();
1 s5 H: y+ T  R3 G4 @6 k% w9 ^' {- L- j, b9 ~) h& p7 B
8 @8 S/ h6 g8 i$ A' ~2 _/ Z) d9 e) t4 k
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
. `. z8 W" O5 [  |6 ~/ z3 I2 M# Q安装进程已中止
' Z8 s" {5 {8 d- A, e2 L( i  g/ |0 O创建配置文件............成功
1 X: e: ~7 p- x; g+ ]8 z1 [创建数据库............成功. V' ~8 L& Q# p$ N: q
安装数据............成功7 m8 g& {5 ]) W
创建管理员帐号............成功! c' n, ?9 P2 k( e- s- t
处理其它............失败
8 n6 F9 c0 P& j0 m7 [
. O0 D2 E% q) [Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528. ?2 U) M* Z! s, s; B
无法创建目录,无法创建目录
2 c' T) w1 e" L# k, I解决方法如下:  `8 V. i; I' M+ @! e9 G- ~
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: ! y7 G' c: }7 W5 v9 H
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。: Q$ Y- m. _( k; k& i0 z( I4 B& }
不安装测试数据库一样可用,一样正常,不是问题.....! ]" a+ ~# i- U% \; g3 [8 f$ I
愿看到此文章的朋友能解决问题; % G( q  j) a) s7 G6 [. D' ?9 ]
" [1 A0 }, X$ D7 ?

/ |, Y2 `7 X& P0 fecshop如何解决includes\cls_template.php on line 418错误
0 b& U$ W& R; y. q, e/ i. t
! W# s' y6 G9 g, r0 n之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:, q: C  m: G, z( D4 r
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4189 I3 E& v+ W( R1 H1 v
第418行:$tag_sel = array_shift(explode(' ', $tag));
$ ?( r$ \! A2 \  G6 c! I3 p ; q2 w. J2 p0 d" ~
解决办法 1:  c) i/ h" K, ?: r  ]5 X  o. A
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
2 m  k$ H& o# G" B0 J- @& a
6 p" ~2 D. `  ~, V$ H% ~$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);& S' X8 W8 T3 x2 ~* j: c
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值7 [6 }9 B# w% `) A5 b2 A
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决8 b- Z; H5 R" P- o. {. V1 W
% i  t. O4 L1 j7 K  w+ L7 g
如:
4 `% x1 |1 x' e" O9 efunction get_dyna_libs($theme, $tmp)) |( P- E: W3 R; A( J4 u/ B
{
6 E' J! Z8 o5 W/ J$extsub = explode('.', $tmp);
! p1 x/ E' J) a$ext = end($extsub);
% p( ~2 E* H; A  J' |* K1 F) W$tmp = basename($tmp,".$ext");
: L- R+ ]9 N* ~8 S1 M* x# g; w) ^$sql = 'SELECT region, library, sort_order, id, number, type' .
  x& S% J" g( [3 @& q' FROM ' . $GLOBALS['ecs']->table('template') .) w& x; N( f( ~7 _6 n( A
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
2 S( }2 H  l6 P8 Z( {0 _' ORDER BY region, library, sort_order';9 X! Y* A( d. Z4 b; Q0 j" [
$res = $GLOBALS['db']->getAll($sql);7 P+ E/ }1 U, ~. R1 O) S' i8 l
$dyna_libs = array();
7 y+ q/ Y# t% P& V* [foreach ($res AS $row)& c! P& J9 Z# D; K9 n$ F* n
{+ P! l/ u, y" f4 ]. C' t
$dyna_libs[$row['region']][$row['library']][] = array(
" h' i9 {& o! _9 k. n! ~) w' M% @2 Q'id' => $row['id'],
$ t& ?0 u- b' B; i1 s0 O1 d'number' => $row['number'],9 I& {8 _9 a" y9 M0 e1 h" b
'type' => $row['type']
: L( H- f( |9 i, Q! e  F% ~);
/ l$ c6 T% b5 [* U: y}0 E; `' `# h8 x& A' m
return $dyna_libs;# G( T$ W: Q3 P+ ]
}
$ c0 S0 @0 \1 d2 Q7 Z$ Z
, J& u" w2 L& O  E6 A! z4 t将$ext = end(explode('.', $tmp));" W# f& f& m& o$ q! _' \
改为; Y. R" p8 s* `. x' i  B
$extsub = explode('.', $tmp);
% T9 b7 Y* {- L, }3 R4 w9 H; g! o$ext = end($extsub);2 f4 D; Q$ h% u
/ F) [2 |5 D( U) @  K; K9 _
解决办法 2(屏蔽错误) :
0 G; M0 G6 d* P* x; F7 @
" s! J7 H: Y/ X) Q或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
. F3 x, Y% w6 ^6 p) S4 yphp.ini中有如下设置:0 K& j, X8 ^9 t2 o4 N
error_reporting = E_ALL | E_STRICT2 _8 M& h! @. f* {

: ~0 |9 e- b( P- T3 X这是说,显示那些不符合编码规范的警告(coding standards warnings)。
, y; p" N) }6 X6 AJoomla其实是建议取消error的输出,如果出于调试需要,应改为5 j# T- Q0 X3 P* F% f! `7 y
error_reporting = E_ALL & ~E_NOTICE
  h' {8 M! C) O3 c4 ~9 m" f# Z ( Q2 l; I: e; u- B
问题得到解决。3 s* g) g% O* B; B2 s

$ k0 {. k- @! y2 N. d* d5 N/ T* W3 {: k8 N9 H
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line8 e0 ]) R8 Y' k
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));, U; t9 V) N0 T8 H1 G7 H; t; D& u+ u
改为 :
' f. T: t9 y" x- k$ E8 [$extsub=explode('.', $tmp);$tmp=end($extsub);
8 |) c7 ~; {( B
: H  \5 a3 t7 s4 C6 Q$ V# Q% Z
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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