搜索
查看: 20367|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
+ @# ^( a$ i' Q! h
 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 错误
) y7 r; m( |( G2 q1 m  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
. ^  V3 h6 u8 C0 K1 p$ y5 f4 l  1)将function gd_version()改成static function gd_version()即可。" p5 I, a3 _/ J7 u1 Z
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:: ~/ E# L$ D; R- A5 e5 S
$p = new cls_image();% K0 ?/ m* x6 Q" G; [9 b4 U8 s
return $p->gd_version();
  N8 Z. ~) J! F( X. c$ E# W5 Z+ |1 x( w
0 M2 V- C) Z- j. D  z! D/ W0 H& \8 R! S+ O& b
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:1 B( x, O% ]& w# k
安装进程已中止! N: Q: R' \6 d8 x) w8 {2 n
创建配置文件............成功) }' T: c# C, Y9 }! Y7 k7 S
创建数据库............成功
; N) |# K& H0 I, X4 R安装数据............成功2 t* A/ c: E3 N( `
创建管理员帐号............成功$ F; z7 U5 F) m' R  {
处理其它............失败  y* ^5 f+ S3 \6 F5 g: v% [
; M! E/ K4 A, T
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528# m' W# M/ F$ D/ \
无法创建目录,无法创建目录4 R# \% h4 k0 b  X3 Y+ v
解决方法如下:5 P, ?9 b' M1 A3 N! q# U9 J; P
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: $ f" p" M* |8 s! C3 _8 ~% h
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。. O1 t8 V' N( n& E
不安装测试数据库一样可用,一样正常,不是问题.....$ f7 t% K" h7 K' {* Q
愿看到此文章的朋友能解决问题;
7 z9 V2 g+ c' T: I2 ?2 S- l* n( z  Y! z- N1 q1 u1 D7 H: |5 M" C) d. ^

$ v6 z: V9 j$ j% ?ecshop如何解决includes\cls_template.php on line 418错误
* u' l# s* n3 q! z7 e
, ?6 Q: p( ?$ U9 R. I1 v之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:4 R+ T5 v0 K" K# S6 z' t4 `
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
( |& ~; n; h& T, h+ r" X第418行:$tag_sel = array_shift(explode(' ', $tag));
# y6 W/ S( `$ _& A/ g+ U  o; v 7 l! B7 W$ I4 i8 G, S' N8 T
解决办法 1:
" K: |3 f) E4 E7 S7 {4 ?& b5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
- b$ m7 N" r4 U  G) |" @ 0 h8 d5 \1 ^1 _( e3 r6 E6 Y% E" z) d
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);3 q9 K4 @; t# B7 o* h5 ^( X  \
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
) D0 B- V+ b1 [: K6 a2 M% Y同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决  b1 ^' `1 a* y1 z
7 Z+ R. z! D3 \  l  x
如:7 U2 U" e# n$ e3 @6 C. z0 H
function get_dyna_libs($theme, $tmp), s- d3 X  X- U5 s+ B( Z
{
; N( i0 c3 U$ c$extsub = explode('.', $tmp);
- Y; L) s4 ~, z$ext = end($extsub);& r$ b- _% N# l4 E, T! }0 }
$tmp = basename($tmp,".$ext");5 n  k- s  q. @/ L* r, y, h; h
$sql = 'SELECT region, library, sort_order, id, number, type' .
/ i9 f9 N* H% v/ l' a! v' FROM ' . $GLOBALS['ecs']->table('template') .
% y) q# o5 M/ R, F3 v3 ^* t  f- |) {" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".5 F1 r; P+ y( V' @8 X, [
' ORDER BY region, library, sort_order';6 E8 L  c2 Y. s- `0 m
$res = $GLOBALS['db']->getAll($sql);
/ L' {( P; k4 y. l- a; d$dyna_libs = array();( h  w$ H+ ?8 K' n. j" j7 P5 J9 R7 R
foreach ($res AS $row): R) T, Q$ z. Y1 a( [$ x
{
- O6 X/ f6 v* _! d- j3 t, R- w$dyna_libs[$row['region']][$row['library']][] = array(
1 P( m  V# Y1 I2 L3 p8 m' }0 A! |" S'id' => $row['id'],, F& \" o3 l9 Q  F7 Q; K  [9 H* V
'number' => $row['number'],% d& a7 B9 `0 K' J9 Z& m$ l0 Z. L: c2 S
'type' => $row['type']
7 t; e+ M" ^2 y$ N);
$ i+ w: F( @& M}3 ]( Q% F& q0 c* \7 D
return $dyna_libs;
" `2 y! |$ }4 ?  E; u# ~' n}
5 H9 l+ C! d/ m7 ~% L! r1 z 8 p# Q: h, F7 l
将$ext = end(explode('.', $tmp));- R& [! f. M3 p/ E! |
改为: e0 C% R- F0 S, G
$extsub = explode('.', $tmp);3 z2 ^4 q5 ?% F( A/ h; C2 N6 t
$ext = end($extsub);
" K" X9 J& A6 ]1 X& `4 @+ G! |
* K7 Z- F+ B8 d9 H( D# j  G6 T( @' T解决办法 2(屏蔽错误) :+ |0 @* A3 B6 P0 P

. g1 N7 d0 J/ x" H或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
- }/ ~! B6 ?9 F! f/ P0 q  z3 Aphp.ini中有如下设置:
/ L( L- F- J" Q  N% Jerror_reporting = E_ALL | E_STRICT
' p/ r  X  [/ T: ~+ x! o* y' w) m
0 {$ o* ?* ]! E' h0 o1 C; s0 p这是说,显示那些不符合编码规范的警告(coding standards warnings)。+ r0 v2 `' W# l6 j6 ~, G, F
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
- T+ G6 [; V: p6 R! Ierror_reporting = E_ALL & ~E_NOTICE
1 H& B7 W3 [, |' I
9 N9 h/ l' t) r0 f" x+ L问题得到解决。
  E9 N* M9 A/ k9 [# S) w7 g1 P+ U/ \. y
" E* E6 Z  T- o- @) }, |9 E
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
' _0 D/ Q% G; Y" z' Cphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));0 _  i2 Z! A$ n4 G( q8 o, \
改为 :
; O7 w8 G6 q+ W$ t# Z3 q$extsub=explode('.', $tmp);$tmp=end($extsub);% J( e) S  I) a$ M" F) k" l
; J, ^4 p* \% u2 u& z. ?
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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