搜索
查看: 14481|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
+ [' X8 M& O# O* p0 S0 ?8 \& D
 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 错误) D- X0 l! g2 A+ g/ R8 m6 ]
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:" V9 e; M% N6 Z
  1)将function gd_version()改成static function gd_version()即可。
; ?/ R9 p. t; _& g  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:$ ~6 d% N3 V2 S& C, z, z
$p = new cls_image();
- s( u- S# L, q5 H. N4 n5 R+ preturn $p->gd_version();8 S1 v9 ~. n7 x

2 D) |; u$ M! ], X" v# F4 v- n) d4 ?
9 \- n& h" `0 \! B0 b/ \) U下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
- B9 ]. a( I# T4 Y7 ?# U+ v" k8 n安装进程已中止
  ~1 z# m7 I% e" K创建配置文件............成功% _% J# A$ v9 R2 v0 J1 O5 u: Y" _
创建数据库............成功. Q8 g) E% q5 Z" z/ q6 `9 i' J
安装数据............成功
, T3 h1 x- W! P% @2 M8 o创建管理员帐号............成功, @2 u8 ?3 @0 y; S+ n+ s9 y+ @
处理其它............失败
8 q, ~  f/ a& M- D' d8 F! m  ^
8 ?7 k9 ^2 q; A: N9 qWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528' k; y  d! C( F8 N- k) }2 Y9 y2 A
无法创建目录,无法创建目录/ I8 F, G; I; R) D5 O3 o  ]4 ^
解决方法如下:
8 r1 A6 V0 m+ b3 ~2 _. C9 |; x点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: & {) a# _. s7 U! x' Q& }
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。8 c$ @9 X! A5 x7 G7 s3 g$ ]+ K
不安装测试数据库一样可用,一样正常,不是问题.....
8 ~# _! F) |) l1 t9 U+ h愿看到此文章的朋友能解决问题; , C1 V+ P7 T: Z6 b% |- _
6 ], ]! q' n- `1 L0 j$ V

6 \) M3 |( a4 B9 X( lecshop如何解决includes\cls_template.php on line 418错误- w# j" k& d& e$ ~- J! ?" a/ ]0 D
$ `% k6 \, h# R6 W' f$ s' o
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
5 ^- B* u. p6 \% f/ ^Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
* C5 b) p! J7 A8 O  w7 P第418行:$tag_sel = array_shift(explode(' ', $tag));
% g- V) l4 W8 c: b. [  J 9 R9 n! Z; g4 N; ?8 u) ]
解决办法 1:. O* f+ Y2 i& U- L4 P, T
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
' y2 h( C) ~* I, R- L5 X  s
/ x2 ]! N! E( j* n/ Q+ P' e$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
7 k2 i+ U. }0 c% t! {: _& o3 ]6 Z(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值8 S/ B4 |1 a$ O4 |4 L; D/ \* |# A7 d
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决& a5 s! S5 `& h3 a' p

0 R5 R* w0 C% Q3 U9 f" B3 [如:
% G, i9 a5 }6 Sfunction get_dyna_libs($theme, $tmp)( m: X& H) N$ c9 i4 B
{
0 `; Y$ u6 c0 U, l$extsub = explode('.', $tmp);
; }5 q) _6 B6 d% w$ext = end($extsub);
" o3 L6 K% `' A( w/ o7 P1 K7 }$tmp = basename($tmp,".$ext");  k3 s6 P* i% y# `3 [( e
$sql = 'SELECT region, library, sort_order, id, number, type' .: S# z/ n# R$ ^3 ^" ?& b5 O
' FROM ' . $GLOBALS['ecs']->table('template') .
. J, M+ J( k3 z7 t" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".. G6 i  x* w! }8 `* D5 y
' ORDER BY region, library, sort_order';( D/ ]! o6 D: ^- z) `: F# p
$res = $GLOBALS['db']->getAll($sql);
" |4 o' u/ t0 ?3 i2 {$dyna_libs = array();3 A' E+ _4 d+ f
foreach ($res AS $row)& G0 Y" I% R; w2 e4 B! l4 p
{
4 n/ e7 R; W1 c/ Q$dyna_libs[$row['region']][$row['library']][] = array(
( I; f0 ~- |0 B2 ]6 R'id' => $row['id'],
3 Z7 n( @& T' F$ T0 `' ~'number' => $row['number'],
/ l/ x' r% i6 y" W'type' => $row['type']5 j0 B7 I  p# c; C/ u% R* @
);1 x! Z. B7 O3 `" D% R( A
}
+ Q2 X+ v5 h2 G& n  n3 I. breturn $dyna_libs;
" W  U) w( r4 D  q1 Z1 h$ w}! _* N$ u' P4 T& B' _* k
6 L4 ?: n# t! V2 X
将$ext = end(explode('.', $tmp));
5 ?0 n! }1 f( Q+ c. y2 I改为
/ _" F1 }; G" t" n! }$extsub = explode('.', $tmp);
3 |, g/ m; |6 a; C- o4 `% S$ Z$ext = end($extsub);
; }' b& }! z3 f+ E; r- {) h * b" \1 N3 _+ l$ c7 b8 ]' ?
解决办法 2(屏蔽错误) :
2 K  x( W3 t, b( F. Z( ]8 p3 j
6 o# }" r% {: Q& m+ b+ f9 S- i或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
5 a( h3 N5 d! g& Gphp.ini中有如下设置:* t% y) J3 @$ G) b" L  ^& p
error_reporting = E_ALL | E_STRICT
& i% w0 z' Z, [
( |9 I& n3 o7 G) W: I这是说,显示那些不符合编码规范的警告(coding standards warnings)。( I' l7 Z9 \) {& m
Joomla其实是建议取消error的输出,如果出于调试需要,应改为2 E% f: \: p5 J( R- p) M0 }: w
error_reporting = E_ALL & ~E_NOTICE
  {+ h7 x5 @1 @, v" [; l' ]  m
+ l, f/ b$ t1 i, y. s+ N, H: J- V问题得到解决。
& [3 a/ N7 \2 v) S4 S
& M! F. S1 L9 h% S1 ^* w8 M- G# N' y3 S' U! d/ Z
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
$ \& P( s5 K, c7 z- C( Bphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));/ ?) J0 X# j8 j, ]+ Q, @
改为 :
8 X1 ^0 Q2 p# @9 E, \2 ~$extsub=explode('.', $tmp);$tmp=end($extsub);
6 _/ V+ M1 A  q5 l" n1 u
/ x5 Z7 ]7 c% |* m6 Y
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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