搜索
查看: 20387|回复: 0

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

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

- `8 _7 S5 H' O7 U( P  d/ [ 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 错误
+ G8 E; h% m, a) j7 n  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
5 ?1 d# b0 z9 ]" I  1)将function gd_version()改成static function gd_version()即可。! [3 N7 _' N4 Q% X
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
6 s& I% G, E9 }' `7 }2 H$p = new cls_image();! O' i: |9 [/ `0 I( _1 L
return $p->gd_version();* v- s& V' V/ n. H
+ G0 W& {9 g# g+ o$ z
) y( X3 Q! ]: D+ ]$ K  V$ _
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:% R! B( c% W4 e6 k& |' B4 G
安装进程已中止* L2 a; ^$ p; k( r4 n# C8 M# H
创建配置文件............成功6 Y7 S1 V6 ?& S* {, q
创建数据库............成功5 k2 S9 A8 e* \1 ~
安装数据............成功. K+ Y- ^$ z- o0 A' W
创建管理员帐号............成功& S" S; m- F3 }( t4 R/ }
处理其它............失败
1 A7 D6 c* V0 n( I2 H  U1 `7 A4 E# I0 q& N% V* Q% d1 S
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528# D4 Z! v/ i  ~$ Q. R* p
无法创建目录,无法创建目录
6 l" h% w; L/ |7 f解决方法如下:
2 i$ X; \0 ^/ S# e9 V6 M6 P点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 3 k% D# ~2 A" ?) N% u! ]5 [# ], H
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
9 B8 [' d1 X# F5 T不安装测试数据库一样可用,一样正常,不是问题.....4 w' H# l& s8 w7 C/ A  @( \% [
愿看到此文章的朋友能解决问题;
- I( A9 q  a! P' @! \0 L$ `" [
, s; q$ V& y1 O  T0 C8 M- R
* R$ z8 n0 g. m. s& {( F8 ]ecshop如何解决includes\cls_template.php on line 418错误- t! D6 c% c- [4 J. X& ~

' H# s% l& X9 S6 z( [/ k" I3 ?之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:" {- @4 }: x* k0 F; J; O
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4181 y7 O5 ~* j  G8 s& n. l8 G
第418行:$tag_sel = array_shift(explode(' ', $tag));
% m! l1 x7 m% ?' S6 H8 m# Z . w: P2 P/ ?% Q" a" X1 Z$ K
解决办法 1:
# V) }+ y1 o' }5 {. {; n; t5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
: L& G2 Y# e# n8 `
' K9 K5 t& M. A$ b$ z& t. ~" w$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);2 ~# H3 p5 {+ E9 |  k: y
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值& O( L  w( B. w' C4 k4 H
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
9 {: j( e: K8 g. M( y9 P
' b  G% v. r; X如:
/ ?& y- g8 u+ jfunction get_dyna_libs($theme, $tmp)/ z5 o* w: z/ N* @( w$ o2 h/ \
{
7 z) Y% n8 Y7 g: r  |/ B$extsub = explode('.', $tmp);5 D" {; [1 x. v) k1 Q/ L3 c# @3 x
$ext = end($extsub);+ T; R4 x3 Q2 W0 V  B" V2 o0 Y
$tmp = basename($tmp,".$ext");$ N: F- j( p- [; t) T" y# n
$sql = 'SELECT region, library, sort_order, id, number, type' .
2 V6 I6 q9 M' a. h0 B1 m, I5 f. i' FROM ' . $GLOBALS['ecs']->table('template') ." r" a$ U6 h) @: c+ _+ ?5 C% N' R+ V; f
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".% k' f5 @+ J! w# ]$ t( J
' ORDER BY region, library, sort_order';* r1 }5 n3 I6 e0 L
$res = $GLOBALS['db']->getAll($sql);
; k  B' \6 B& o7 w9 h# S$dyna_libs = array();
" e* g+ b. b4 p0 F9 Z- Hforeach ($res AS $row)
5 N% |* A9 \2 ]. Y: c{* t( c8 U2 n1 T0 ^. @0 r+ p
$dyna_libs[$row['region']][$row['library']][] = array(9 V: m$ _- o& B& y2 Q, U5 p) O! x' [
'id' => $row['id'],
2 u0 g' H1 [/ J" ^8 S7 R'number' => $row['number'],  x6 Y  s+ d8 t8 }, P
'type' => $row['type']4 @9 w, Q$ u0 n  y7 A, {
);: n$ B' q( d2 m; E* r! }  F2 `  U
}
+ z# W8 t$ y& f9 G- preturn $dyna_libs;& D7 |, s  ]0 A3 U6 s
}
# d/ m* S" H2 z; Y# o8 x
4 z/ {1 f6 |% A: H将$ext = end(explode('.', $tmp));4 a+ c7 I4 k+ [' p* V4 A
改为
# c* _: d  F5 b3 b$extsub = explode('.', $tmp);  L/ W% Y: ]0 `6 r8 y  [8 C: U
$ext = end($extsub);
& Y5 B/ e+ C2 Y* F! s + N. f! x& j0 T# v
解决办法 2(屏蔽错误) :
7 `+ T: U% M6 r& ^8 T
: a7 ~5 R# b0 S4 u  z或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
/ B) G" h! I9 P0 o" Zphp.ini中有如下设置:
. Q  k- j; J, y& D: Berror_reporting = E_ALL | E_STRICT
; s3 ~# u% H( R! i  f6 }
# x2 W. `1 [, P, v; A6 j7 z这是说,显示那些不符合编码规范的警告(coding standards warnings)。) `: g& C3 w- n. w3 O2 E6 D
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
; z7 k  U8 g! T5 P: U/ qerror_reporting = E_ALL & ~E_NOTICE, W3 P9 [) J, i: o/ |
7 Z/ s( i! c# `" r3 v' V/ O* C
问题得到解决。  C1 z6 \0 p4 z5 G5 e3 m
$ D  u5 y4 q+ @3 F+ i0 m% r* B/ I  R8 I
: F- }) d! J- W1 ~9 u: M/ a
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line9 g0 c: k. Y/ {: s3 \1 s3 ?2 j; |
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
/ t" _9 m' }6 V% G改为 :% s) b. J2 a1 {
$extsub=explode('.', $tmp);$tmp=end($extsub);
. L) L5 s1 A! M; r( j% C$ p
  A6 `; v7 E* h$ C
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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