搜索
查看: 20441|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
2 z* X5 N. P* D( g# H+ O
 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 错误
" x8 k0 j& ?7 l  c5 W2 X  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:$ v: f! \/ u" @+ r& t
  1)将function gd_version()改成static function gd_version()即可。
- m* K( p; E/ _  I, h9 j  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:: Z* `: B! _+ A& [
$p = new cls_image();
5 j8 |5 n, r! y# A* yreturn $p->gd_version();
/ C. X7 b4 L7 L) b  z- ?$ F5 X4 t% K" v9 J( C# s2 ^
$ t: `. H4 Z* \5 B  g
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
* r& Q: A$ _" ]5 b2 J# M5 I安装进程已中止
# K2 T, ]' H, `创建配置文件............成功
$ w7 H/ X9 \! E/ e  v& H创建数据库............成功
, C, j3 }% R# u  P  R2 P安装数据............成功
) r9 v5 G- W( [创建管理员帐号............成功+ \4 O7 y  v# J$ N
处理其它............失败, j4 I- R; n3 e+ A- N
0 S' a) g3 {" N  J9 @0 I$ ]
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528  I( e( U. S" w* V3 d
无法创建目录,无法创建目录
" {5 c( H6 O6 i: s. \3 Q1 U: H解决方法如下:, L) r: U  W) K$ g" _) ]
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
: m5 l& o+ _' e7 a; P(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。: g3 @, Z% L+ n$ L  b* _+ [7 g2 F
不安装测试数据库一样可用,一样正常,不是问题.....5 j- ?. Z3 H6 N" z0 I% D  I; K
愿看到此文章的朋友能解决问题; 3 q# d. P- }3 H% y# f

5 K/ Q/ ?9 L% K. Z8 t
0 E" `, U, K: ]% N4 d/ p" kecshop如何解决includes\cls_template.php on line 418错误- R2 g  V# G' `& Q
% K8 T: Z3 T/ T6 Z8 o8 \
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
' w7 d* {6 x* w* h6 w( jStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418% V8 S' C( l" W  t2 F
第418行:$tag_sel = array_shift(explode(' ', $tag));2 c' v9 N9 B- |) u7 A* [- K& C  S
' J( a- M4 ^  A$ X
解决办法 1:
, b. g8 u8 Q' ]; e6 I3 d5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: 9 D6 d( J& p) v' F
, S; e0 B4 P" S% ^& ]0 V- x
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
" a  M4 m# R5 t8 I' m" y(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
5 p8 i6 c7 ]9 [/ O/ k同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决# H. u1 A( i, |. k8 w* h+ L
/ Z8 h0 n5 [( G# v8 q2 E
如:
1 o4 g+ t: L2 }6 Q7 Y8 o% Ffunction get_dyna_libs($theme, $tmp)$ n) @! m. o. o# v
{
6 C4 s3 T5 C: ^  g. E! Z2 N$extsub = explode('.', $tmp);) u+ n3 N% f. D/ k
$ext = end($extsub);
/ F$ z5 W, n" U$tmp = basename($tmp,".$ext");
. U3 A& Q& q' q/ N; f5 v$sql = 'SELECT region, library, sort_order, id, number, type' .9 k: E. z& p+ Y! E
' FROM ' . $GLOBALS['ecs']->table('template') .
6 y5 t0 |& V6 V* a" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".1 O( g7 d% z0 @; J0 m% [7 W
' ORDER BY region, library, sort_order';) S3 l  K- b( ^3 v# N
$res = $GLOBALS['db']->getAll($sql);
! J$ P! I- `: f: A- g* Z$dyna_libs = array();% M  @6 ?) b- m7 v( S: s- {# d  f
foreach ($res AS $row)
4 t& ~( W5 R% y% {% o{
8 a& h  Y* n6 i) j1 `$dyna_libs[$row['region']][$row['library']][] = array(9 J, t8 L6 N# e* X2 U  U
'id' => $row['id'],. L1 q8 t) P1 H, s, N# I; r
'number' => $row['number'],
  i6 ~4 I1 O- [) w; o9 i'type' => $row['type']
. k# W1 x! `# W: L' C);# e7 Q6 p1 E& P9 l* G$ U
}7 `5 m; J0 i! e3 l9 A( ~2 Y
return $dyna_libs;7 e) Z# D" |4 R+ R5 G
}
$ y; p/ y2 m. T9 D+ B
5 d/ }* j* ]* A+ |4 L将$ext = end(explode('.', $tmp));
8 E, X+ I: f- Y/ K4 I  I改为
- \  u. S+ u- \2 p5 b4 s$extsub = explode('.', $tmp);( E" R4 H2 E2 i) w9 T% q# G1 V
$ext = end($extsub);. a0 }, R2 J6 N9 y7 \

; h, Y, l, M" \解决办法 2(屏蔽错误) :
, ?; H& r4 S7 f1 N5 h) A9 g0 f: j2 f
3 w9 o' I$ a  j) o, w8 h9 w, o或则如果这样配置的话: error_reporting = E_ALL | E_STRICT) k3 u" R# f. d  N5 t
php.ini中有如下设置:. p$ g4 h2 W+ g0 g
error_reporting = E_ALL | E_STRICT1 A' J3 b0 p& Q. o! X& \

8 }. H0 V8 t8 E- N4 Q这是说,显示那些不符合编码规范的警告(coding standards warnings)。$ ]9 O) o. L4 }5 |$ K) J  p1 i  ]
Joomla其实是建议取消error的输出,如果出于调试需要,应改为! U. O9 I0 @6 b& `9 [
error_reporting = E_ALL & ~E_NOTICE
% ~* }, m2 J* e, h) \7 ^/ x6 [ 0 u* x1 y4 N& E) t; v7 \* i' F1 d
问题得到解决。) }0 b9 w* p+ H% I

3 \1 J# M1 t+ G, w, J0 f0 C$ g# f! f1 `) C7 k* a: p$ j, K' ?# Z
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
! z, u- \6 y( L! j- ]7 \php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
& L1 o& i& h3 W改为 :
% x0 E8 k4 i4 {5 P% _, `$extsub=explode('.', $tmp);$tmp=end($extsub);
" V! i1 Z9 D1 J) N' b) j% L. ^6 ~1 }1 Z; B
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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