搜索
查看: 20448|回复: 0

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

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

# l+ [+ r+ t8 R% G 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 错误
3 j, Y7 t& N, M5 P2 A  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:4 _( R% y" Y9 ]$ B. I
  1)将function gd_version()改成static function gd_version()即可。+ v% ]& p% R( R! v. p: M* o
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:" v# P# m6 \% E. P# |  A4 _
$p = new cls_image();
6 K' m1 O7 z. K3 n3 [6 T' Ereturn $p->gd_version();  m% g' Y6 i7 J( f
7 S" h1 l6 Q1 ~0 }! E: z

( I7 H# y2 [2 q9 v8 t6 |下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
9 |- Q+ C* I! }9 X( z% a' d+ z安装进程已中止0 m- x8 S+ n! t; ?: G
创建配置文件............成功! T2 ?( }* d5 ^* s+ N1 I" }
创建数据库............成功
, v+ a+ \- L4 f- ]安装数据............成功) z% \5 Q+ Z4 {
创建管理员帐号............成功
/ N4 ]/ B: }- J$ ?2 |( L0 s处理其它............失败
) y  o" V) _5 Q3 c4 @2 k% {8 c! R1 c# v7 n+ o% j8 g
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
/ B) p2 d0 |& f% _无法创建目录,无法创建目录2 v* J. z8 {/ D" A3 G: J7 i
解决方法如下:+ o; k7 C9 k: A8 }- y9 ?
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
" [  V; V% L0 f/ L% P' v(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
, G4 S+ i/ t& \! C) N# y* J5 g# B不安装测试数据库一样可用,一样正常,不是问题.....
9 z7 ]6 R1 y9 b0 K+ i! }愿看到此文章的朋友能解决问题; 8 d5 w9 Y* q$ p7 @

! F. q4 c" N# y' `' T" a: l' s% B1 k+ k$ R, _7 n9 n
ecshop如何解决includes\cls_template.php on line 418错误% r& R0 }' X8 }: L* c

! P9 @. z* W' b: N7 g. p% D之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:" i: ?: k* d6 A8 G9 {0 ?
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418+ ~: c, |0 I$ l1 ~$ {
第418行:$tag_sel = array_shift(explode(' ', $tag));, G( C$ B" F5 F# m: ~
3 B) f9 Y' f( x' C
解决办法 1:6 q% W4 }# f  |4 V2 Y; r: a
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: $ `  S; }9 D3 t" ]

  ]0 A' d! u8 Y8 r2 d* Z/ L1 {; S$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
+ }9 t. ]8 k) j8 \(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
' q4 J# U& J/ H- r3 F! r% x同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决' c8 `5 k" L" x- I- a8 `# o
- i! d; N- v& b) w+ W8 b
如:/ n; v! ]+ s! O. B& \' ?9 N
function get_dyna_libs($theme, $tmp)
7 z# e7 N( [& {, N( f. j{; [  \% C9 z* x+ y& o
$extsub = explode('.', $tmp);
* r  I/ L/ l4 j4 `5 @7 E$ext = end($extsub);6 X! R: v/ l: k1 Y, ^
$tmp = basename($tmp,".$ext");, }* A+ J( p1 m/ _: r, w
$sql = 'SELECT region, library, sort_order, id, number, type' .
0 O. q: O+ j+ |2 v/ ]+ [' FROM ' . $GLOBALS['ecs']->table('template') .. M4 u( A0 B( e  A
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".6 l9 w2 l  s! m8 d) w
' ORDER BY region, library, sort_order';
/ v6 c- o0 a3 W' U2 ~$res = $GLOBALS['db']->getAll($sql);
* \: y/ B! O2 ?/ f  n+ D3 }$dyna_libs = array();' A6 P! M7 i0 o& n( t4 E$ K
foreach ($res AS $row)  ?7 N6 m4 ^# ^: x0 o& s' d% r
{
8 K" H" r5 G; d7 r$ ^$dyna_libs[$row['region']][$row['library']][] = array(7 }; K- X* Z  j; z/ `! i
'id' => $row['id'],
5 Z7 ]  h; b' A  z4 {& @'number' => $row['number'],7 F6 o5 d/ y1 x+ w. l" @
'type' => $row['type']
( p7 J) o# ]. x& s6 R6 X);+ J, y7 H! e/ p  P
}
; b+ Z: f* |# Q7 ~return $dyna_libs;
' S! o  E2 a7 K}) j! T. \, x" L: o2 r

; u# f, @1 O) y2 v9 Y( ]将$ext = end(explode('.', $tmp));
0 q( f8 N2 M  _  y/ H7 D: E7 H% \改为$ \" z) k0 |2 y; g# Z
$extsub = explode('.', $tmp);" B, n/ l8 N4 f1 C0 X) t/ ]2 [
$ext = end($extsub);7 V5 D) E8 ^9 t, b' D
' q( x. Z* c; w+ |! \6 n
解决办法 2(屏蔽错误) :) Q# K& Y' H7 L+ M, B
  ~5 l4 j  v& l+ s; Y2 G
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT+ I% ]) L2 X  K4 f+ i
php.ini中有如下设置:# v& ~4 K% V4 e' j; t* s
error_reporting = E_ALL | E_STRICT2 E/ P, @7 q7 d+ X

3 `1 W. w) `) I这是说,显示那些不符合编码规范的警告(coding standards warnings)。1 [% b4 p$ R& b/ O) z- K$ L8 R& e- y! c
Joomla其实是建议取消error的输出,如果出于调试需要,应改为, X2 R, Y1 _/ G, M! D7 J1 x( C  L
error_reporting = E_ALL & ~E_NOTICE" Y8 d- }% m4 s$ `7 o- K

! T. z( A0 U( Z* z, k问题得到解决。
& V8 R1 B* K' m4 c: l. K& W' }4 V  \# g; \# o. Y& d

( h; T5 k1 A; a% O7 K) V- WEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line: V0 p9 L* I5 D3 R" V& f
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));; n" c* o. d2 K( {( q5 b- D: U8 Z
改为 :% o) `# L3 C5 [) K' s0 t3 n
$extsub=explode('.', $tmp);$tmp=end($extsub);! q4 c# F- z' A' I- }' c
; G8 E5 K1 u' ^! V% O' n
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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