搜索
查看: 20089|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
- h6 {1 d" _+ B* |) \( q
 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 错误
: o  B$ e1 J! k; `1 p9 o  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
8 `9 e9 `* V! l. q% B5 x7 C  1)将function gd_version()改成static function gd_version()即可。( [' N- U! u" o/ t3 V4 N4 @& x
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:) U# L% H3 I& q- B0 k! \6 M" Q( w
$p = new cls_image();
4 P5 d$ h# v3 t" Z. }return $p->gd_version();
* M' _1 M/ l. }0 C* L1 F) A  C! U- }+ }1 v% a; Y
9 _# Z9 c+ r( P- U( a
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
7 `' _0 l$ y. `安装进程已中止: H  \7 G* ^5 @( e
创建配置文件............成功' H( {# O6 B; P( F7 J* G' P* t% a9 U  e
创建数据库............成功$ {2 z& R( E9 Y6 ?5 K
安装数据............成功7 ^% d9 ^5 n; L9 ^4 q
创建管理员帐号............成功; ]! o) |1 [; z( F% m+ e5 U5 }
处理其它............失败
3 o; t; b& ~4 O4 y8 o4 _, E& t9 T' u. m+ v5 h
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528' ?" D  E  k, I  H! {$ y
无法创建目录,无法创建目录' O' \, y1 t1 N& |6 l
解决方法如下:
+ o- k# r  N! k( y+ u点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
$ P/ `+ p$ d4 K  |$ h, k(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
% D0 ?4 n- O2 r6 I不安装测试数据库一样可用,一样正常,不是问题.....* }- n3 u/ A  t/ u. L% {! ]
愿看到此文章的朋友能解决问题;
0 D9 {% ?3 X8 G& Z- h+ i- D/ Q  k: E
/ R1 b6 W2 A5 ]  k
ecshop如何解决includes\cls_template.php on line 418错误
3 Y3 L6 D% f& F4 d. b) S; I; h
! {9 Z6 \1 B; K2 ?, h& C之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:6 j& S) ^5 C# d4 L5 h6 d$ M
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418, d) U, E# e. \7 ]
第418行:$tag_sel = array_shift(explode(' ', $tag));
: A2 l- c3 a6 Y& H1 i' F3 g - T8 v0 O; a: t1 q
解决办法 1:
; K* A8 f' O9 s2 k' S) P* l5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: : A( E) d5 W  x1 ?9 x8 v7 \
8 K  u3 y# c7 e2 s; G
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
* A2 I2 Y. D2 w5 t4 w( V9 |" m(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
" N+ L$ b. l1 n5 m4 }( J同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决  O$ e3 e& O0 A* v4 w
& s7 Z/ D8 b# O, y. ~9 M9 k4 r
如:
; ^) M0 [% s: t5 f2 ]$ G( Ffunction get_dyna_libs($theme, $tmp)4 [. |. d  W% }5 L
{
1 l: L! H% j% G  ]# I$ v. H$extsub = explode('.', $tmp);% G5 g2 q" F+ w/ [: t! D0 m# N' x, |
$ext = end($extsub);
" g4 W# ^+ @$ b' \8 y$tmp = basename($tmp,".$ext");0 B9 ~8 n  _, V9 Y6 }" K
$sql = 'SELECT region, library, sort_order, id, number, type' .3 a: F5 g) J2 C) N: N
' FROM ' . $GLOBALS['ecs']->table('template') .; K* z  Z+ ~; R" M7 X6 K" j7 Q( Z
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".  v) f2 y$ p( u0 U% Q
' ORDER BY region, library, sort_order';- Z' c2 r$ K; V  n; _' v1 X; H
$res = $GLOBALS['db']->getAll($sql);( z1 B2 o3 C, s  m  B
$dyna_libs = array();8 r- [1 |6 Q7 l8 B8 K
foreach ($res AS $row)" ]/ F) I8 U& C- @' A
{& x+ P9 t2 f0 V1 ?: i% T
$dyna_libs[$row['region']][$row['library']][] = array(" v. d7 R. \  P; a1 T" U
'id' => $row['id'],; Y0 n  v% T! E9 I$ F4 c
'number' => $row['number'],6 x4 r4 Z# Q2 g7 T
'type' => $row['type']4 v9 Q1 R7 O6 Y: Y: f) [# i
);
* h3 ^9 S! t* A3 g}
$ a6 \$ u( ^% z! H# P1 ireturn $dyna_libs;: s( F6 S8 f0 p- {/ s* s) L
}) K) ?  o3 A% j7 P" P3 J" b. d- p

3 {* W( Y% Y6 z7 o- @将$ext = end(explode('.', $tmp));; K; j5 g: f$ ^& l: w
改为
) A7 v' [1 Z# w: |$extsub = explode('.', $tmp);
/ |2 X; L$ Y3 e! |1 Y5 M  h# w) d7 O$ext = end($extsub);
' k/ Z( e. o/ v4 P  e
4 q' T) Z: m. E- V解决办法 2(屏蔽错误) :$ |) D- T5 N+ m2 f' w4 H6 |
% E& A; R% d+ F4 _/ }! |! d
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT4 E# _( e0 W: R
php.ini中有如下设置:) l" M) z2 c0 w/ i" ?1 d" |7 N
error_reporting = E_ALL | E_STRICT
$ R" a  a, D2 `3 B, t 3 W' d+ o" n$ n# f4 {3 I( }; @# b; w
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
. ~- w' ^7 c& L( Q* C9 B1 ?Joomla其实是建议取消error的输出,如果出于调试需要,应改为
/ D  P6 K& |! w- ~9 o; xerror_reporting = E_ALL & ~E_NOTICE: n/ T! D' F7 Y7 i7 n1 k  b1 Y# x
" p! t% u# X* m8 E) t' {/ S
问题得到解决。
1 U( o$ k3 z; O! a( J
; _1 c% N( X6 y3 s4 a! b' _8 K" j/ _* J
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line* D7 J# Z4 E+ [1 y4 @
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));9 ?2 a* v9 s3 d6 Z
改为 :: n9 T. Q3 d- m. T
$extsub=explode('.', $tmp);$tmp=end($extsub);
+ _2 h/ j$ `( U4 J  H! k' L( _, |
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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