搜索
查看: 20496|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
! J; F; Z8 |5 B, f4 e
 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 错误
( A1 V+ j4 x( D# F$ H0 a8 e/ x7 r  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:1 \4 Z" `/ q" z- X' @4 g( E
  1)将function gd_version()改成static function gd_version()即可。; b( f: k5 {4 r# Q$ \/ y) {
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:! G2 B) J) c5 h
$p = new cls_image();
9 S; {: O( V$ c( q  ?& V; xreturn $p->gd_version();
& B/ v5 o/ a( d7 O; ^7 P, @7 L& R
5 Q' N* Q$ V4 ?7 o* z0 d# ]5 _- p9 m* Q5 D! o  S% l  O0 G- q: ]# w8 ~5 v
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
* a- ~7 y: v/ h6 }" G) O, r安装进程已中止# V/ i) H1 \6 e! |
创建配置文件............成功: g2 ^7 S! s' @! j6 [
创建数据库............成功
- s$ V& C% }. z4 p: _" n4 g3 j- W& u安装数据............成功' `0 Y! P* g0 O4 L' s) U; w
创建管理员帐号............成功% i3 W+ z; S7 Z1 N. a
处理其它............失败# [& V7 e/ `6 E6 v9 h6 S; n: a3 k

3 F: i0 C3 a8 [) Z, u% b7 w, qWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
* q9 s9 c' t: T( e  E无法创建目录,无法创建目录
" f5 v* p9 L# j% i. M/ \+ {+ v解决方法如下:: _/ U- _( [; l1 W2 I7 _$ }. g
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 1 i) t, r) [4 G! t/ x$ t
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。* i0 k6 d0 R! @8 g2 G/ X( h
不安装测试数据库一样可用,一样正常,不是问题.....
7 Z& Y8 n! G6 D, M( A! k愿看到此文章的朋友能解决问题; * E0 C3 u9 g' H. g4 G0 V2 S, p
$ s: {9 Q" P& J. F' }7 P
- [3 u# q; l1 l
ecshop如何解决includes\cls_template.php on line 418错误
' o# U" i( a/ t% D" Y+ q# `) z6 o, a1 ]$ X7 D1 ^! j8 m2 C
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
: H0 D! P9 d  y/ J( L4 k0 W! Q' L+ ?Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
8 x4 ^8 C4 t  G% Z/ X/ c& f第418行:$tag_sel = array_shift(explode(' ', $tag));: z7 \7 q  F6 A* u

$ W: m7 d; U* U解决办法 1:6 {1 `: S0 I0 }4 r6 p: E' a
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
' b) U' m: E1 P, S1 P 8 o! h: j" j8 b9 a8 n; K
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);/ [) Z, ]0 t# M- \  P3 D. Q' U# m
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值: F5 X* o( ~( A1 r9 s& f
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
1 B8 c: }+ \: Q5 s 1 Q3 b3 [7 _/ m0 K  f
如:9 j( K( a* t' g( u/ j! K+ k
function get_dyna_libs($theme, $tmp)
( l$ ^. B8 G4 f{
' @  e2 X- V( j$extsub = explode('.', $tmp);5 z  I, t. j6 I; h
$ext = end($extsub);
8 b2 g- G1 j& B$ E* E1 j. b$tmp = basename($tmp,".$ext");$ Q$ ]0 h, a" T" M; ?
$sql = 'SELECT region, library, sort_order, id, number, type' .
) W, K: ]' H8 B) M! O& P+ O" Y' FROM ' . $GLOBALS['ecs']->table('template') .
7 F' t& n5 T8 i# u" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".1 P! H; Q- s% A
' ORDER BY region, library, sort_order';
) e# {! ?4 G- ^: I$res = $GLOBALS['db']->getAll($sql);- u; y: B, R6 [( \1 m* H8 L
$dyna_libs = array();
. ?& s2 v9 K# j, r8 zforeach ($res AS $row)
; N3 m& R3 h& f{
- u) f8 m! u  }* Q& b$dyna_libs[$row['region']][$row['library']][] = array(
  g9 U- M) l6 r5 O6 i'id' => $row['id'],
2 E* D8 a! x6 w) D2 E8 |# \! g'number' => $row['number'],
' w9 y& n* B5 D& o! A'type' => $row['type']1 A! E  ?0 Q9 a
);
6 P! y' Y! @9 p3 t; o; d}
% c. i, a( [: s, @return $dyna_libs;$ @+ z1 U- k4 m. @5 k
}- h7 u; W* B$ P
  [2 d. R3 J$ j; C
将$ext = end(explode('.', $tmp));/ t2 k& s" i/ ]. ]
改为* K( M, Q' E* {, A4 o* ^/ b" ?
$extsub = explode('.', $tmp);. [3 _1 ?7 V- F7 U6 b
$ext = end($extsub);( K2 n6 _% n# ?+ {2 I; w( p' z- K/ H
/ u" S/ n: U' B2 s
解决办法 2(屏蔽错误) :
) C! K! Q" ?) h3 ]1 K0 T ; _% a2 Y3 h' X/ n* V
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
& R! W+ z* O, X2 n4 g# Ephp.ini中有如下设置:, w8 W* n% ?& S0 o& q4 J1 }' J
error_reporting = E_ALL | E_STRICT( c4 o+ p2 k! M: K/ B, {7 Q
" ?5 ]3 P2 w0 x4 M4 Q
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
$ b3 N  O: a: Z6 MJoomla其实是建议取消error的输出,如果出于调试需要,应改为% |# M6 k6 q$ D, z8 s
error_reporting = E_ALL & ~E_NOTICE
2 O1 @/ E9 `% k/ a5 q! v% S  c
! s/ M3 q6 C. G  ~问题得到解决。
# \/ v0 S1 ~  j) A; ]) z4 ?" I
+ A) k" C$ e. [  P# q3 B( Y5 C
" L5 u# Q" Y- [' nEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line4 l4 m0 i7 t" `  W3 {# f
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));+ L" ]# j+ D0 ]8 [* |
改为 :$ d% d- T/ p  ^
$extsub=explode('.', $tmp);$tmp=end($extsub);
% n* ^* a- X1 {" ]5 S/ E- j! C" C3 r1 W5 s+ ~0 J, ?/ I
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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