搜索
查看: 20508|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式

2 B: A3 u+ A2 ]/ c 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 错误( P# E6 [" F, ~4 r) J" g& y
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
% k% \- y8 ?0 M  U$ r: r5 v$ y; W  1)将function gd_version()改成static function gd_version()即可。
8 K* Y: s  v9 ^  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
2 c# D# l6 H' M( D. ^$p = new cls_image();) H+ v# Z- L! g& q
return $p->gd_version();
9 n8 o2 ^# R2 ]( j8 ~+ s. h6 c
6 `: ]- J: A9 }( U/ f5 S) `4 R0 D; P0 s! M
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
( @: Z' u/ [6 {: z9 I! I  y安装进程已中止- o0 z6 ]& v. K. t9 C9 G
创建配置文件............成功+ G/ z& b) }( w
创建数据库............成功
) s) u6 E, \7 p9 m7 @安装数据............成功/ t  G+ t! w) ]9 q
创建管理员帐号............成功8 A" d0 y- p" C. l1 C3 D
处理其它............失败2 z& R! h! B) W! u/ ~
6 P+ e! r2 H  Y" r
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
6 I/ ^8 K. B1 y. S0 F无法创建目录,无法创建目录# i$ [% K1 O( e8 m
解决方法如下:
+ H7 j. w9 ?# C* _) O点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: : m; G' }" f8 _! ?9 G0 v
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
7 j0 Z2 v6 e5 v1 [; C$ U, i不安装测试数据库一样可用,一样正常,不是问题....." n2 w" \4 J( k$ w% a( G' x
愿看到此文章的朋友能解决问题;
. J; m2 j0 k* p# I' S2 E$ X/ V$ c8 t4 L% P7 c

3 t6 F" F$ Q% X  Z" }ecshop如何解决includes\cls_template.php on line 418错误/ D3 Q, t4 D1 a
* ~9 n* x$ k, J' k1 p# g2 ^
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
1 L% I( h7 v5 u0 Y5 D/ RStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4182 P8 D: t/ a8 k
第418行:$tag_sel = array_shift(explode(' ', $tag));
8 G  O0 R0 M) X8 l& D! P# o/ A
' X! D9 Y: I: T1 y: N解决办法 1:
* b; E4 o9 D: w/ P" D& T5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
4 \3 R" a! h7 Z   m  ^9 l; u3 E! l
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);! W& y% G/ s! ~) x$ {% E! f
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
9 |- u! a  k( I8 r7 ^; c: l同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决/ B5 }( P. R$ X
+ H. F  O, r1 v
如:
6 f) F( m5 {+ b0 u& efunction get_dyna_libs($theme, $tmp)
) m( o* O& K* P$ {0 h& C7 j{, s, y, Q9 B' T4 ^
$extsub = explode('.', $tmp);" w& O& Q1 F6 h; T
$ext = end($extsub);0 v! ~, t7 V( D& R+ D
$tmp = basename($tmp,".$ext");
) J/ O" R  D+ U- I" f# s$sql = 'SELECT region, library, sort_order, id, number, type' .
, p' m" e1 J# T4 n+ r1 s' FROM ' . $GLOBALS['ecs']->table('template') ., T( f# O% ]  ~" w
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".+ J8 K/ s: Q5 k! U
' ORDER BY region, library, sort_order';  ^# e/ f  T( X  d
$res = $GLOBALS['db']->getAll($sql);4 X5 Q( w+ ?, u* S
$dyna_libs = array();/ t: j% R# J; k1 X
foreach ($res AS $row)- w2 i9 u2 N% [: X, C* Q
{2 m- [3 J, s  \
$dyna_libs[$row['region']][$row['library']][] = array(
+ K; ^4 ^; F3 _5 M7 Y6 m3 {8 v4 G: w'id' => $row['id'],: G4 _7 b- S8 W: Y: t' V
'number' => $row['number'],, [4 \7 v* m* {- Y  g( D2 Y
'type' => $row['type']3 U' T: y" X. X1 f
);% N3 J, z5 P9 H2 G( J+ ~
}
7 X( O9 n) I4 y' I0 Wreturn $dyna_libs;
% h! `6 e2 ~8 P8 t1 d  `2 M/ G}  B) }  _3 C. O* z
; |0 p' N$ _" E+ f+ E
将$ext = end(explode('.', $tmp));, j# L& c. f% g. I, K
改为/ P/ q1 ~; |3 o
$extsub = explode('.', $tmp);8 u/ E' h( B8 P; g6 J. S
$ext = end($extsub);
# K, U8 R* t7 \7 z( B
" v* y5 }( E; K0 Y  p: o  Z0 q8 \解决办法 2(屏蔽错误) :( h2 C9 @/ F& W5 m; ^
5 o5 N4 w5 D) K1 z2 A- m  u
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT% C0 q  Y1 G2 Q7 L1 ^/ i
php.ini中有如下设置:
( K& z3 n  O& r7 l5 m% n( Qerror_reporting = E_ALL | E_STRICT1 l3 }$ k8 a& k. F- X# d! H

9 g/ Y( i  r1 Y% A! u/ Q  g这是说,显示那些不符合编码规范的警告(coding standards warnings)。
5 D+ _2 H, x' D! {( ^, m9 PJoomla其实是建议取消error的输出,如果出于调试需要,应改为
: ]8 p2 b" Q$ k, l4 o6 \error_reporting = E_ALL & ~E_NOTICE  N1 F) ^8 S  X1 z: [8 V

# K( f. d) N/ E- j6 |3 v3 J! X问题得到解决。
) h, ^8 R% S+ A* f% r! f7 |9 U* d
- W$ P+ Q8 l3 T# r' p& K6 E# T! k% _# @/ p! U
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line8 T* j' Y0 O/ f0 k0 Q& }2 {+ J
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
( x; _3 `! S  ^& @. J0 Z  \# G5 E0 e改为 :
1 e. o% D# W* u$extsub=explode('.', $tmp);$tmp=end($extsub);
- X  T$ D5 Z! q# h, W* U, Q& J" {' @# P9 N
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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