搜索
查看: 20704|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
* X7 ^: b& A, R/ `4 C6 l
 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 错误% N( o7 Z, j  z, ?
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
" |+ \; V# U5 F& o  1)将function gd_version()改成static function gd_version()即可。
! }# k; r, J* I8 e8 ?7 b1 k  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:% g! n% _! y% D+ s. S2 R7 q* n
$p = new cls_image();
$ @3 k7 ^9 R  F8 J( ureturn $p->gd_version();$ R: a9 O7 b# b# s. ^
$ Y" T$ e" N7 I% }; G* B; z

/ D$ _& m% w9 F2 Y6 _下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
' w- q5 `$ `5 k' ]! X. \安装进程已中止; Z* X: T& M% g9 n9 B8 P1 N
创建配置文件............成功
/ e9 ^; W7 _& x9 ^0 Q1 U' A创建数据库............成功
( q1 L, ]& o/ P, t' e安装数据............成功
3 H$ |* a  H" z9 g3 X* F9 M创建管理员帐号............成功
9 k" ]. U* b* T' }2 D处理其它............失败
4 L" H( Q% O3 p# I8 X/ Q5 M( Y! _- k& ~; V& @  b3 [
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
3 v6 s! }2 j1 l" j5 V) u0 N无法创建目录,无法创建目录* b3 x; u6 m+ E5 P2 g3 P8 J0 B8 `
解决方法如下:
) K: P, F' _& }* A/ [, b& w0 {点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
, G6 u! l7 K. L/ N# `* S8 Z(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
0 B- d" B; e7 E  W不安装测试数据库一样可用,一样正常,不是问题.....
$ f- L; o# h: |6 |, C$ q愿看到此文章的朋友能解决问题;
3 i& H- }4 ^: t7 s0 G( x7 i3 T/ P! W* H4 }9 p+ e9 S

: k2 _& U& R7 q( jecshop如何解决includes\cls_template.php on line 418错误/ W1 ?4 V  ?  c. N) v
8 G/ C4 w3 U# K# Q6 X0 v
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:0 i( ?' c; i- ?6 K9 m) \
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4186 h/ \0 {; I# Q# O& i
第418行:$tag_sel = array_shift(explode(' ', $tag));$ W6 C7 T0 h% g$ ]& x, W

6 t' y4 I: }1 U- _8 p  Y解决办法 1:- ^0 c: m6 H; g' X8 M. M- J5 `
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
( h+ J7 }* M) s, A/ v1 c5 ?" b , f6 P; j- @6 E% w
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);# S7 C" I: `3 b. e) C+ ~
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
, V, L/ m% \& z% x3 u* j, Q同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决4 u1 ~: V6 B1 H7 I0 C* `; }1 q

; J0 p% \$ \9 T2 [% n# h如:
4 T$ {; z/ e8 K* Nfunction get_dyna_libs($theme, $tmp)" K1 _( K  z# r: P
{8 b$ A! k) W; Q& L$ d  e
$extsub = explode('.', $tmp);
- @) g$ O! K! T) f6 F$ext = end($extsub);) C( N( _4 F% O/ {
$tmp = basename($tmp,".$ext");
+ Q( Y# d' A6 {1 t) F9 k& r" j& i$sql = 'SELECT region, library, sort_order, id, number, type' .
& ~9 m; u/ w2 W' FROM ' . $GLOBALS['ecs']->table('template') .
/ }  t1 F; [$ G4 L$ f  J+ p2 x" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
0 Y9 I7 R+ A* q0 f& J% |5 x% W& ]' ORDER BY region, library, sort_order';
8 _* S  l1 r+ }1 @# V4 Y$res = $GLOBALS['db']->getAll($sql);. h& g. Y7 j9 d9 d  W! `1 u
$dyna_libs = array();& B5 |7 Z$ f+ j" |9 p2 r! i
foreach ($res AS $row)9 U& O) q. x' Z4 O/ f7 Y
{# C7 x- d1 @+ [2 ?
$dyna_libs[$row['region']][$row['library']][] = array(
+ I7 t: H8 ^! t9 |5 H'id' => $row['id'],
2 E, Q- ?4 O* ~6 m/ L  G7 P  K# R'number' => $row['number'],( i! P5 [6 z8 W' j! A! t  `
'type' => $row['type']
* h  z  D8 `5 z3 Z" i$ v  x1 Z);
0 V( L6 v$ E! s) v0 [. l$ |0 b}
+ [! f% R4 B+ Y* Nreturn $dyna_libs;  j& S# H: i/ y
}
! q* M' f2 S4 r" @! p/ H
+ {( Z6 p  h% P7 b将$ext = end(explode('.', $tmp));
" o4 F. M, d8 |  U" I: X3 b改为0 |, i0 ]# n& a$ R4 k/ z" u
$extsub = explode('.', $tmp);, i1 I4 z8 ~5 r3 a8 O4 p* K
$ext = end($extsub);9 \: p! ~. u# r- {
! ?5 `' L; G+ o$ U' b9 @* z
解决办法 2(屏蔽错误) :
/ Z. b" I. C; B 2 r; J: q+ T% ?4 L$ k
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
2 D& |0 l: N6 h6 k$ xphp.ini中有如下设置:
- }& F' Z  a2 T0 N* F: ~& eerror_reporting = E_ALL | E_STRICT* K6 E3 g6 u8 f& E+ s; e3 n

2 t" k8 l4 @& b$ \- H& ^这是说,显示那些不符合编码规范的警告(coding standards warnings)。
% V7 e6 L6 @5 }. N6 u4 xJoomla其实是建议取消error的输出,如果出于调试需要,应改为
* }0 f. \: p3 V) uerror_reporting = E_ALL & ~E_NOTICE0 Q4 \$ X" h0 {* s4 \
: b1 u: J0 f: Q0 }* V8 T
问题得到解决。
7 X; e* X$ \. x1 @
' }4 Z! k: S$ O% a( |& |$ `: A
- V) ?% q6 D" i% w: z) lEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line: I6 [. [" l+ L# t: V( Q
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
& k' P, o4 {: B: i改为 :
5 V- M7 u" {2 B( \- T, [$extsub=explode('.', $tmp);$tmp=end($extsub);6 x2 O9 n3 Q  [1 r

; ~- C7 D0 y) `. h; R5 N! }
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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