帖子
查看: 19976|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
8 E# w: J1 \1 f* e) N  Y
 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 错误! y) a0 [6 }+ M# W# r; d( V6 ?
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:/ N1 d6 ?. d" ~& r/ ^% V' ?
  1)将function gd_version()改成static function gd_version()即可。
3 @+ g, y# p2 b  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:* N& P5 C6 O* ^8 F# ?; T2 X0 b
$p = new cls_image();) U5 u8 z/ z& S# Y% z$ p
return $p->gd_version();
# R4 ?* l' A& b; C' t6 e, U( F, U% p% c9 ^* y; C
* X) |% B3 S' T6 A" m
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:1 O0 k0 |/ n9 a( ~
安装进程已中止4 k/ o% k" y" i" m2 Q
创建配置文件............成功# `+ X7 Y9 f' ]/ i# w: @( T( M
创建数据库............成功
% B& h7 v; {8 x! }安装数据............成功
& z. K; {1 V0 \/ Y创建管理员帐号............成功: I% \/ }6 |* T
处理其它............失败
, z) Z% e) c0 I' @+ X/ z1 U  I2 l- _# \; k+ i" l! G& n
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
7 k0 D4 z. L$ }* ~+ ]% k, X无法创建目录,无法创建目录
2 v+ r  H* x1 _' R5 z1 r) x' b解决方法如下:
$ f6 z% h- O  ?; _5 x点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
& a5 u; A& o& C(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。0 n+ W; z7 {3 v+ ?8 M
不安装测试数据库一样可用,一样正常,不是问题.....! p. J( F% a7 O4 t" s
愿看到此文章的朋友能解决问题;
* A! ?, [6 ^- R4 x6 w" Q1 k* b
3 X  N3 `, ]& m" C. U
6 ?5 ~' s: i* Z1 G* Lecshop如何解决includes\cls_template.php on line 418错误# c* J2 n0 R( K, C0 x# y* r0 c
+ L! N- g+ D4 L/ R) \% @! ?. w2 y
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
$ e7 ^4 u; F" _1 L+ i+ g* i- d  KStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
. }. j- H  J3 C3 a& [第418行:$tag_sel = array_shift(explode(' ', $tag));
, H8 B& U2 b6 o: v; R8 P. } 8 k; e* g& {- R' j/ Y" O6 a
解决办法 1:
6 X% G' t2 ~+ C5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
3 w1 D( a+ X8 H9 N& I+ h
2 Y6 Q4 P  e$ J$ ?/ q$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);: J: A" @/ ~2 @. N# m7 }& @
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值. m! C( ^/ n- ~! W0 ~& ^/ U7 a& o
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决( b: ^8 |% t* S, n' Z

! ]0 x% t0 g$ i* F如:
/ r9 M4 R" W+ k& {8 @function get_dyna_libs($theme, $tmp)% i+ P* W1 F6 d6 H/ ?  I9 T& d
{
/ I2 o2 J8 e+ e1 N$extsub = explode('.', $tmp);2 W# f4 F2 v8 j/ s& L2 u
$ext = end($extsub);" W% x) O0 B+ T4 c0 k4 r5 {) J
$tmp = basename($tmp,".$ext");" `: m) M! ~+ i- g. `  t
$sql = 'SELECT region, library, sort_order, id, number, type' .
- i( s& R% F' X+ A% V5 X3 v3 F' FROM ' . $GLOBALS['ecs']->table('template') .
/ b" v: r* g" B2 N( Q% c& c" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".  Q, L- ~* S' i4 [8 t. ]1 |
' ORDER BY region, library, sort_order';
" P# L6 f2 S" d  N3 V& ^1 z$res = $GLOBALS['db']->getAll($sql);) e& t- x7 s7 f2 w( D
$dyna_libs = array();
. }3 ]# |1 _8 K- M' C/ T, Sforeach ($res AS $row): W/ Z1 p8 I2 O, x$ O' o
{8 _# U8 H8 i% d% T
$dyna_libs[$row['region']][$row['library']][] = array(
. _, j! C1 d% ^) l3 y, J1 ]/ O'id' => $row['id'],0 b, a% i% L8 e7 [2 X. Q% Y: H. a
'number' => $row['number'],
! x' o& p% e, o'type' => $row['type']
+ I& N- d2 l, V/ x/ H5 `) S) r);5 S1 T5 A: l1 z3 l' ]! q( d. [- [
}
' z- g3 Z' s' v9 s$ rreturn $dyna_libs;3 M8 o4 c) o: r( U4 R$ D
}8 e! O  k5 t2 R; \# _& F4 Q

7 a1 L: u- P3 Y) P9 E  ~& y将$ext = end(explode('.', $tmp));( z. k, Z; r0 f  f2 T8 z9 W7 {0 X
改为
4 S* v9 d& \- c" j( S2 {$extsub = explode('.', $tmp);( w7 H* g5 ]2 ~1 _+ s) ^3 g
$ext = end($extsub);$ j7 j5 q: \8 A! J9 v8 c4 F: b

- E* Q) ]$ X* n3 N9 K解决办法 2(屏蔽错误) :5 f% \+ o2 Q* P" V+ s, m+ D; S7 I
# Q* m8 Y, D9 s8 r
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT* _: C7 I! S5 A% C8 E7 H
php.ini中有如下设置:8 [( \, u6 F; ^8 w% J
error_reporting = E_ALL | E_STRICT# K2 R6 P# [, s& [; M2 h' ^

3 Z3 D" t" l, i这是说,显示那些不符合编码规范的警告(coding standards warnings)。' W- ?, @9 b$ p" u2 o8 |- R
Joomla其实是建议取消error的输出,如果出于调试需要,应改为  Z: I& Z. l* l
error_reporting = E_ALL & ~E_NOTICE
- U: j- b7 W& I1 Q: W( B
, P2 @: a7 S+ O& F, R& X问题得到解决。. \) D; }5 l4 o" ]

, l& `. T! X, q
5 v- {; `: x/ S& ~Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line) a+ o: @) [9 C
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));$ I$ o9 O( k5 n3 Y6 Q$ F
改为 :% d  r0 d7 ~" @4 w1 q8 c
$extsub=explode('.', $tmp);$tmp=end($extsub);
/ y# E( `% Z) h* X
* `' i! F1 x+ N, x4 Y6 ?
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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