搜索
查看: 20703|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
; w/ {" D+ f- r$ n7 x
 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 错误6 R4 ^* m( b& W- ~  _
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
- C% j# T; x, u: Q  1)将function gd_version()改成static function gd_version()即可。2 e9 E# g- ^0 p  T( ^5 }4 O5 F
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:3 q" j: _% a0 I/ g( A  B7 y
$p = new cls_image();( {- w; z# q) _3 d3 Y& Y2 f
return $p->gd_version();
) ~& q/ Y8 J' W/ }5 ?4 ]. z
  _( Q% S+ g8 T0 Z5 h, f- V! y4 C* W2 A: C5 S
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
; k# M- b: t9 c安装进程已中止
2 T! m5 R- Y/ m; b创建配置文件............成功
8 C0 e6 d- _: ?6 Q8 H! l- u创建数据库............成功
! Q( q3 |6 w4 p& P/ B安装数据............成功' r! G( S$ a' L5 i8 r* h
创建管理员帐号............成功
6 Z- [9 `! I) q6 {) P$ l处理其它............失败
5 A+ @& ]+ r! M; F9 D1 {9 }) a- F1 n
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
& J! |/ \; p+ j5 M无法创建目录,无法创建目录
  x" S4 Y- g7 k解决方法如下:
  v! o1 K8 c- N, F' l8 L! k- S点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 4 n& h0 Q8 r& f7 x" p# _
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
5 B' s5 a0 }( g4 f/ @不安装测试数据库一样可用,一样正常,不是问题.....
% x4 N) i# ~, Y愿看到此文章的朋友能解决问题;
7 w& j3 d( J6 U" ^4 I! _' e) U6 U% d

  n  Q8 [- T, b: q* y9 lecshop如何解决includes\cls_template.php on line 418错误
+ z. k* c/ ]# u5 V
; _) V( a+ x+ l1 M& y! Z1 T9 |! s之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:2 i+ R' \. L8 k: W/ `
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
! Q6 i! s' H0 u* y4 p第418行:$tag_sel = array_shift(explode(' ', $tag));
" p0 ^" ]( A5 }5 t# Q3 F+ c, U
& G( Y# r2 R4 n5 W解决办法 1:# j2 D# _1 V; x' u+ u: |
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: ' c0 B* [8 O; X5 ]5 Z* x
$ @* K) k$ Y% ]0 m: O( s
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
. |; T5 ?9 K" I$ b; N2 V(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值1 T( B# a. |2 \8 R
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决) \5 C: ?8 {9 R1 c# Q! ~0 B4 z: ^

! E) ]4 `! G5 R$ C3 e如:
6 g+ d  _- P' b5 v( k; Yfunction get_dyna_libs($theme, $tmp); {, c1 x* y8 P* s
{! a- a; {9 D0 ~3 Q/ L; l
$extsub = explode('.', $tmp);% |% x# n/ M3 S- @$ v
$ext = end($extsub);% H; m6 x  [( `0 Z7 c0 m! Y
$tmp = basename($tmp,".$ext");9 I, X, o2 L. X5 ?4 n5 z
$sql = 'SELECT region, library, sort_order, id, number, type' .
4 s/ q* x" n+ f% F! e* m. [: s' FROM ' . $GLOBALS['ecs']->table('template') .
# D9 V; x+ f$ c* x5 Y1 {" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".2 b) O# s# _8 w9 f' [+ d% M, z2 q
' ORDER BY region, library, sort_order';$ O9 F; W5 J4 {
$res = $GLOBALS['db']->getAll($sql);
' `$ \$ V: ?* T  r$dyna_libs = array();$ Y0 ^- S3 J9 i7 G+ }5 p! S
foreach ($res AS $row)
( ^$ V- [# W1 |{( h  E* B8 o3 N
$dyna_libs[$row['region']][$row['library']][] = array(5 l+ L, W) b# x9 V1 B; d$ \
'id' => $row['id'],
7 t; @1 u8 r' u/ y/ E5 l% p- }3 L'number' => $row['number'],1 k, n4 k; U$ M
'type' => $row['type'], e; X/ z4 W2 U6 d6 r
);+ U% E, D' b/ B0 k
}/ S$ O: t* u$ @) i
return $dyna_libs;8 i; p3 p* Z7 {9 K4 |6 `% ]
}
" |; U; k7 e+ C, W2 O( e0 ^& | 0 P5 p/ }0 p# N& w
将$ext = end(explode('.', $tmp));
; l. X  B$ ?+ e" W0 ?# n" |改为! X4 O: U5 i5 ?2 d8 q8 x
$extsub = explode('.', $tmp);
% \( R7 ^6 N! I% {! D$ext = end($extsub);
' t4 r: ?7 U7 H; L! d
) A) h% ^. q8 n  q4 w; @$ W/ i解决办法 2(屏蔽错误) :
2 O9 C. J; S, L- r! z5 E% Q' I
5 \- Y* L- T% `7 i0 h或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
3 q) T3 Y9 I; ?php.ini中有如下设置:
8 m7 y. ~2 X, Z9 rerror_reporting = E_ALL | E_STRICT
0 g& P( D5 V4 @$ y - U; \6 V' m1 ?1 V) Z
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
3 G* O0 K8 }; c' r) [Joomla其实是建议取消error的输出,如果出于调试需要,应改为* I$ M9 Y( c2 D5 ]( J
error_reporting = E_ALL & ~E_NOTICE9 E: d; i% ]( n' X1 C
3 T4 d( F% p* M, ~6 d& P. O" ]
问题得到解决。
  D) ?0 W- ?. H* D0 k$ p) T6 R$ k$ _
$ {& d7 H$ f+ M. ^" v' m
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
) t- {8 n+ k8 ~. ?: I0 tphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
4 X3 h+ {% z7 V5 R7 S: P9 x+ E改为 :" \, Q1 N6 _9 Q" O2 l
$extsub=explode('.', $tmp);$tmp=end($extsub);
1 Q  T; F1 \0 L' e( x, Y6 B5 q$ u/ i/ {5 u) K; E
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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