搜索
查看: 20399|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
' M9 `" d# G- S4 W9 z% L. P
 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 错误" b* a; x6 R/ p1 c+ X, f
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:! U; z  p. e; u; A- [! ?3 ~- r
  1)将function gd_version()改成static function gd_version()即可。
7 [; J  O1 ?( \6 d# n3 T  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:+ N) P; k" K+ u8 ^, V% p1 J
$p = new cls_image();
/ |3 Q5 w5 Q' c9 o. u' ^return $p->gd_version();
5 M2 z# J! U+ d: F0 h# \; V& G9 Z; H. M3 [( C9 e& z: {+ T' O5 k
! L% \9 e  Q) U
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:+ D# v/ U. ^' @4 p
安装进程已中止5 t. a5 X% p% q" e9 ]0 B) h
创建配置文件............成功3 X5 T( Q5 Q- k' \# \8 [
创建数据库............成功+ v3 Y" y  W3 H9 K- L$ C$ O: @- R, y
安装数据............成功
  E( [; H6 B9 z* R1 p6 a创建管理员帐号............成功
( s$ \& D/ B8 P" |  E$ t6 O处理其它............失败
# S! `, D. r) o. I' k4 r' X6 c$ K% _: D8 G. y
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528" A( M) f8 a% Z
无法创建目录,无法创建目录% o1 S8 Q+ T( `5 _" H
解决方法如下:
- G  J  L6 x4 y+ y% n8 {7 T, P点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: ! ~3 l  l# {7 a" E4 N
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。3 b1 y/ S* h5 s. Y
不安装测试数据库一样可用,一样正常,不是问题....., P" d+ Q- ?2 Z/ p. ]
愿看到此文章的朋友能解决问题; ; J, l/ U! d! P7 G

  v5 D8 \: r- I5 ~
7 X. u; u! q# ^ecshop如何解决includes\cls_template.php on line 418错误
9 |1 c- k4 ~9 y6 Z7 @$ a% f0 A% K6 k- K' W$ ^
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
! z; |8 L, Y: T& I( ~3 \Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4185 k$ p% t( ?, Y  I- b7 S
第418行:$tag_sel = array_shift(explode(' ', $tag));
% H) b% q' x! e, g; e5 Y ( N. p' j, [: E& _
解决办法 1:
9 J3 O% A# x7 x3 L! K5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: 1 n" W+ N+ N3 D  R0 n0 u: ~
9 w' W& E* z; C8 }1 j
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
8 x: x$ F& L( Q& N) l(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
- w4 k0 p& _/ m8 l5 T同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决! d6 U. A6 l+ w2 [$ \2 l3 Y
+ G. `$ g$ U, J( h$ n3 }
如:
6 w' q! \( o3 o. L' A4 zfunction get_dyna_libs($theme, $tmp); Z7 c: D1 F+ a8 d
{
4 E1 e% _5 w7 I6 M# e7 p$extsub = explode('.', $tmp);
5 u) c( D! m2 e" Q  u% P$ext = end($extsub);
) a& ]" r4 {; Z' A6 s/ d$ C, l3 B$tmp = basename($tmp,".$ext");
, H* y! r! r% H$sql = 'SELECT region, library, sort_order, id, number, type' .6 j5 V$ D/ W8 |8 V5 y/ L- p
' FROM ' . $GLOBALS['ecs']->table('template') .
5 j4 u! S6 ]& X0 Q. G8 |$ r" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
+ N+ J& ~4 ]8 t* {, U3 b' ORDER BY region, library, sort_order';
: K  d& `4 H$ J2 O! l8 o, D$res = $GLOBALS['db']->getAll($sql);0 v2 P9 {0 R4 y- X2 h* V, q6 h
$dyna_libs = array();
1 H% \0 `% ?1 r% fforeach ($res AS $row)% }' o% E& N7 u* u
{: X8 q0 N" L: Y4 ^6 r  k
$dyna_libs[$row['region']][$row['library']][] = array(
& U( v% t1 g# q! I. Z: X. C9 [# v'id' => $row['id'],9 ]9 m: x/ k( h) ^: z' W
'number' => $row['number'],
6 M! ~& t1 B7 H- u3 I3 ^'type' => $row['type']9 _3 A9 ]# t5 W; |0 s' s2 A& W
);  P# j- `# @" W2 Y8 N" \$ X2 D
}+ Z! H& ]& ?; D2 Y( v3 U
return $dyna_libs;3 i2 i$ E+ V. p  E0 P9 ~  o9 }
}
" M! N# X. f5 D* A1 p: U. ?
% A2 Z6 {9 f. T* x* _; x将$ext = end(explode('.', $tmp));
6 w* P+ W$ `  e( {- T+ l改为
4 H- w  U9 l3 i3 _, X$extsub = explode('.', $tmp);5 f" \. K# N' Y( q& U0 f
$ext = end($extsub);
+ _( k- R2 E3 U( Z- E% f - h5 |- m( _: |6 o
解决办法 2(屏蔽错误) :$ u5 }, K3 B# u+ h- |% t
3 _# @2 t# s/ L$ N6 a! }8 {
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
' T4 n* t1 f2 P, t5 ?5 [, a1 \1 ~% Q) nphp.ini中有如下设置:3 j# L: B" B2 N4 w- l9 A
error_reporting = E_ALL | E_STRICT
9 l$ K6 \2 X) d# r! r5 b# O
" M$ R% }. @6 D2 Z2 i* }% h这是说,显示那些不符合编码规范的警告(coding standards warnings)。
* R0 }, I5 E$ y) g! I. D/ C6 K9 RJoomla其实是建议取消error的输出,如果出于调试需要,应改为" X6 X2 t. o$ U% ~: H2 K. c% f( Y8 S
error_reporting = E_ALL & ~E_NOTICE
, r0 f( a2 z9 J! p' g $ V; r# ]/ H- A4 W0 q
问题得到解决。; A+ e, @" P# ]- f& Z4 s

& W9 S4 f0 V/ q  P5 c& Y
) R6 y( k0 z. M' {, l  HEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line; M' n# ^' T% S! ~% ?
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
- S8 N4 r& ^8 m$ \" Y1 }改为 :
7 ~% \1 K9 F3 A3 E$extsub=explode('.', $tmp);$tmp=end($extsub);
: G' }) X2 ~+ Z- e; j
4 k$ }2 T7 [2 u, y2 p8 G- N2 c
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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