搜索
查看: 20452|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
& m' f2 q  r2 T: @# s6 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 错误
: U& Y: S6 c8 M! H. L- o' [  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:$ K/ j) e, {0 Q% F4 ~
  1)将function gd_version()改成static function gd_version()即可。2 N6 K4 r; [% M- A
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:( w& ^, F3 }7 L" F2 g' Z
$p = new cls_image();% i5 }1 v; x- t. [* ~5 z: y  W
return $p->gd_version();
5 X. C/ Z2 \! H) i2 F) k) @2 T0 o3 O( |+ W2 Q! a; x% K0 K+ f1 X0 j0 _
# }4 U0 W3 g5 L! w" |
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:1 u! l$ Y5 D4 A7 T6 A7 U5 y
安装进程已中止
9 `% w! Y6 v5 \/ n. F创建配置文件............成功& s( M7 F' y* x3 l1 f- [
创建数据库............成功7 H6 R: n  @0 {/ k; C+ _5 {, |
安装数据............成功
( s* ~- u  K  [& ^# ~/ Z% o% f创建管理员帐号............成功
  W- n2 i  ]8 q8 k  Z+ L处理其它............失败
3 U: C" ^/ z; ?6 N
1 S5 f5 s: x2 H. I2 x+ kWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5286 @% G/ s) X2 O+ r
无法创建目录,无法创建目录5 n/ {4 Z- L1 q& d. c2 n8 v4 H* G# [
解决方法如下:8 n. H% v9 H/ w& a2 a
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
" C2 [! J0 H. K: D(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。. ]8 _- g. w1 z+ U4 x
不安装测试数据库一样可用,一样正常,不是问题.....# ?* W5 V$ s4 b
愿看到此文章的朋友能解决问题; / I# p; G! Z4 f; Y5 g

$ B; C" p# D1 j" z; p" v9 g" D4 d, Y3 }& s
ecshop如何解决includes\cls_template.php on line 418错误* `4 c2 j3 L: r: X; l. v

$ V) I  g/ \# q% Y! K) a之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
1 [; v2 D6 g* j" h( g$ i' yStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
/ G' v* Q  `$ W) A第418行:$tag_sel = array_shift(explode(' ', $tag));
9 I- F" g! a; f8 i, Q" ?0 t: _ 6 z( H, @% n' _6 B! N  J
解决办法 1:
9 W6 X) y9 f$ \9 h- n) _' ?1 R5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: 4 R5 t+ V( v7 `. Y5 D

5 Y0 j0 R1 W5 _/ ]$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);! w6 |& s8 C% {; ]' k  a. _
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
- R. b  I7 F( k( I" l同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决8 k  L: `. M3 Y) R) ?5 y6 J% V4 x
+ q+ V8 f, v- z1 R$ d/ ]1 t1 E
如:
" L$ E9 r) Y3 K9 R, W0 ffunction get_dyna_libs($theme, $tmp). ^. {6 l; G( _
{2 W. z- |8 L. M* v. s; f' [. P
$extsub = explode('.', $tmp);
5 f3 u( x: w+ s& @  h& W$ext = end($extsub);4 f; C+ ], e9 [
$tmp = basename($tmp,".$ext");4 X2 }2 Z3 _0 m; ^. c' u
$sql = 'SELECT region, library, sort_order, id, number, type' .2 B& ]' h+ Z# b: \
' FROM ' . $GLOBALS['ecs']->table('template') .
! a2 r0 H! y! q4 V& P' V; m8 A- d" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
; _1 R2 ~! _4 h, O' ORDER BY region, library, sort_order';+ j5 T' r  X0 F
$res = $GLOBALS['db']->getAll($sql);4 D. N3 e7 s  p9 X1 _& T, V5 K9 ]
$dyna_libs = array();
% b+ G$ ^  ?1 f" Q: Jforeach ($res AS $row)
7 R8 S& o% X1 x{& U+ ~$ z' [0 ^5 r$ D7 F
$dyna_libs[$row['region']][$row['library']][] = array(& G, k* L' W2 N) {
'id' => $row['id'],
/ u9 ^; G2 L: x# i; F/ l$ a'number' => $row['number'],$ r& N* t% V6 c5 J" I5 Y
'type' => $row['type']2 b' z6 ^$ Y( D. K/ {
);* C+ M8 q% Z: A4 D, J
}& E. r% Q3 \% L$ x
return $dyna_libs;  P- W9 G% t. d1 c
}
9 ~4 t! Z. \$ c/ n! g 1 J; \0 ?& G1 C+ e6 k5 N
将$ext = end(explode('.', $tmp));  F$ B9 y5 ^6 B- h( q
改为
0 U4 ~! v* [9 k$extsub = explode('.', $tmp);
5 \" t$ [% h4 O! v' M$ l( _2 {* Q$ext = end($extsub);
7 P9 K6 f( c! M" C' L7 W( @8 h+ `
( m; A- D. r3 ~2 ?% ]3 C1 \7 W2 q解决办法 2(屏蔽错误) :
0 S5 l  f4 q. E3 V- x ( @$ h; |- ]5 u; U2 [$ N. ]
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT# T  k8 m; D) g
php.ini中有如下设置:: r7 r; \# n, j' o
error_reporting = E_ALL | E_STRICT
3 E5 |6 ]  @2 B' p/ K7 {
; i6 J" R* O9 p这是说,显示那些不符合编码规范的警告(coding standards warnings)。
, u" J4 {0 D) f( `  F$ J5 U- ?Joomla其实是建议取消error的输出,如果出于调试需要,应改为+ N. h5 K' w9 t- I; P4 H
error_reporting = E_ALL & ~E_NOTICE
1 L/ h# D7 k/ v% |) M1 }  ? 7 _* f- c6 e9 G5 l; g
问题得到解决。8 h, F* ^# D* l5 J
" c' j& n0 h+ l* O

* n# }0 v& q/ X! e2 I/ S. }8 DEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
) \$ \, q3 h3 w7 G) b/ ~* dphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));4 X2 O/ h/ q, Z7 w' q
改为 :- B. ~" g8 L5 Z' ?1 y, y
$extsub=explode('.', $tmp);$tmp=end($extsub);) L- z  w5 D  D3 S; ?1 J. m
  K7 A7 T; a) `7 [
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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