搜索
查看: 20342|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
9 L2 U) c  w9 }2 C' d) P
 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 错误8 A+ l& \/ g6 O) u
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:+ B5 u5 A  ~% [( U
  1)将function gd_version()改成static function gd_version()即可。
9 `1 r6 _4 t- }* m  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
5 x& R9 r5 ~8 W5 [7 Y/ _8 ~$p = new cls_image();
0 a& Z) F. z8 U# Xreturn $p->gd_version();
% {# j  K- Y) f; q- ?1 m9 b7 A' Z8 ~8 L, f" }
& v8 Z; _1 d" O0 i  t
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:# j4 T( ^% d( j% w
安装进程已中止
7 P# e) R6 G7 ~, W2 b  J/ A创建配置文件............成功
, H) Q( G8 B) W5 g" @创建数据库............成功/ H* o) ]* N0 I) {4 B
安装数据............成功
6 w: C, w2 C( s+ ~1 x9 }! L创建管理员帐号............成功
  ]0 j$ H: j, G( t, d; G处理其它............失败; S2 Y" B5 a2 u* }1 {
( K" I1 [8 j$ n: K' k- K; 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 F! ]$ d/ {" `' F- z无法创建目录,无法创建目录2 ]( V8 X7 Z& V7 J. j
解决方法如下:- S' ^5 N4 n* N3 J( x) o& \" w
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
$ b  v7 A$ @% k(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
2 `, t# e  L" i* Z不安装测试数据库一样可用,一样正常,不是问题.....2 a& j2 D) H) B9 j
愿看到此文章的朋友能解决问题; 8 e. @: H: F9 \* l- z! X9 B

' }# V1 S4 z$ [. E/ W+ z
7 n5 k9 U" c8 L" Z: p4 mecshop如何解决includes\cls_template.php on line 418错误
( D/ V# l: b, p2 G; E" M' l% x0 W* p
3 N% `# b7 r' p之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:! U8 E0 x5 i% ]2 I/ s
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418% e) x9 g7 D' J2 d
第418行:$tag_sel = array_shift(explode(' ', $tag));' m( T7 C* F" z) ]

! r! [7 J% B: B/ V+ L/ t% B解决办法 1:2 M9 o9 ?/ [  R1 I1 B' M( p
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
5 ~1 h8 q' G; k 2 ?6 P) k1 j, r) A' V
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
% n  R8 W7 Z. n(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
6 L4 m& x5 q4 S% I, V! p同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
  _9 c1 X: I( t& K2 O3 k
9 g/ X5 M" o! R+ J0 R% G如:
1 E  e- [% L2 \1 D, l: Cfunction get_dyna_libs($theme, $tmp)- q) X! F: P2 Z; h+ g" ]
{
7 R! V7 A% {! R0 P& \! y7 O: \$extsub = explode('.', $tmp);
0 r6 L4 s2 S9 W  N$ext = end($extsub);% h! @/ w: M* q# X4 B) i# S( N& Z
$tmp = basename($tmp,".$ext");
# ^/ I  X5 I2 t# C( {' _$sql = 'SELECT region, library, sort_order, id, number, type' .
4 I9 D* M; L$ H3 b1 B' FROM ' . $GLOBALS['ecs']->table('template') .3 X$ B. {! p; }& d7 z* o+ |- s* Z
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".: \4 d0 j! w* r" W. a
' ORDER BY region, library, sort_order';3 Y0 [. q5 u) E. w1 Z) n$ z4 _7 v
$res = $GLOBALS['db']->getAll($sql);$ x0 p2 C; p: ^
$dyna_libs = array();' P# f, ?8 [- v# K! W' w7 t
foreach ($res AS $row)
# c+ ~' c5 L& e{
3 P8 w, Y+ Q% A8 F2 C+ h- w4 M$dyna_libs[$row['region']][$row['library']][] = array(! k: B" G9 s, ~6 U# r3 y! c' I  p  n, P" F" M
'id' => $row['id'],
" b/ y8 y, n" s) G'number' => $row['number'],. z. M+ p, Z' I
'type' => $row['type']- v# ~+ G, g6 h2 E  d+ C
);
4 V) w" l, ]3 q1 Q: H  {1 T: s}4 u2 Z6 @/ Q2 t/ ]6 O5 X8 M4 p
return $dyna_libs;
! o& |6 E! h" M) f}8 C% q5 j+ p7 }# k

3 h) _* N5 B1 b# ^1 S2 A. p将$ext = end(explode('.', $tmp));7 Z2 _9 w3 ~* V. s: Q. ?( Q7 k% J
改为
6 c, U3 d" x1 \) v* J$extsub = explode('.', $tmp);1 w. t4 t: i( W  j# |4 g
$ext = end($extsub);  |4 S0 B) b* B. |: u

" n6 m6 X+ c! {# ~" e解决办法 2(屏蔽错误) :* I) q+ @* ?& ^$ H' F+ ^$ i
/ ]  k7 f* P" J; P
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
! B0 p" Y! S) z0 `+ E8 y! Hphp.ini中有如下设置:, r4 n  o+ x& M
error_reporting = E_ALL | E_STRICT
" n5 m* C% v8 V/ `. g 5 B6 \; L! o5 U, S
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
$ P9 `/ G. J- ^Joomla其实是建议取消error的输出,如果出于调试需要,应改为
) i( w0 M; G8 l8 u, Herror_reporting = E_ALL & ~E_NOTICE
% L9 y  R: B; @3 n: y) w# L 6 V# T$ j/ Q: X* q8 ^7 R# v8 \
问题得到解决。) r: p0 X" b) v! y1 n! U  N, U
! C: K, |0 }7 l0 s; U1 ]  w
$ `+ p! p  X$ t
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line9 f# n* }# C+ |) ]. y* x
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
( R0 a+ Q  a2 r9 u2 w2 `; Y$ ?+ U改为 :
# o3 X$ u9 X" w$extsub=explode('.', $tmp);$tmp=end($extsub);
0 c* O8 h: V7 ^6 ?, T; A! P; y6 \- z- s- e: v4 ^
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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