搜索
查看: 20193|回复: 0

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

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式
1 z6 {6 a! F/ s, h$ y5 P" 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 错误5 N2 W6 B. |" c, E
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:- w! Y, d0 G& Q0 A: ?' ?( I
  1)将function gd_version()改成static function gd_version()即可。) t. s, w. I$ }7 r
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
& }5 I+ i, M/ L$ D+ Y5 a9 d; G% k$p = new cls_image();2 a0 q3 k8 c4 q
return $p->gd_version();0 [" N0 w5 W! f' d
- j4 ?+ C8 q3 c6 \5 A. b9 H+ H
) e" m9 |3 p; @, J  K% p
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
" b: ~# n$ s2 w; {安装进程已中止) t: q) e5 g& K' J7 ]% k
创建配置文件............成功
# P; ?* u$ \8 Z' q# Y5 x  y9 u, q创建数据库............成功3 R4 b" O" S/ x: D7 Y% J6 v- ~8 P
安装数据............成功# n! }* M0 V" h
创建管理员帐号............成功
/ b8 t; j/ @7 x: k) ~. h: ^! Z2 `. b处理其它............失败
& p- s$ J; C) v3 ^5 Z' V
. ]* I! |5 t7 O5 T% O7 V0 OWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528! [1 ^2 Q5 d+ C/ h. |
无法创建目录,无法创建目录+ z7 T4 a6 o9 C- O" n6 g, R
解决方法如下:
2 k' v9 a6 W2 J3 u" P% D点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
, a& b: j6 D" O/ l(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
, ?3 q6 M4 b6 I不安装测试数据库一样可用,一样正常,不是问题.....
2 N6 P$ T0 I" T2 ^: L' h愿看到此文章的朋友能解决问题; ) `7 h+ {3 J6 l$ F/ r9 W& h
- N3 h: P7 ~) N7 A' E/ k+ x

$ c$ I; r7 L- i$ i: {" F0 d* secshop如何解决includes\cls_template.php on line 418错误( J5 Q/ \& [( _8 E7 I
, B& v- j/ t% `4 |0 e- X6 o2 v
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
: @* e0 L$ N( ]# M9 k: z$ fStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
- }& o8 M! B, J* U. z第418行:$tag_sel = array_shift(explode(' ', $tag));
! _8 s- {( p* _+ [7 j0 _ . Q$ ^8 Z2 A1 ]5 V6 L. s$ b) c3 u
解决办法 1:
. V( G+ H$ C+ ^, M2 f5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
9 f3 x/ {. N0 b & C5 ^( R; k0 z2 I0 c* h* z; J" w
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
/ K0 R9 @6 p1 }, C4 _! e+ `' L7 \(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
( A5 O. l1 \0 b# f2 l: \同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决+ q8 \: l+ K0 v# b" v9 X$ m
! g% y, s1 n4 Y, v" W: q! L
如:
& ^/ _4 Y9 J5 h, j; s2 `: B. F+ kfunction get_dyna_libs($theme, $tmp); m6 \, j' w" t& o3 x' i8 s( D
{
, w) l. d* L1 \* s9 e$extsub = explode('.', $tmp);
4 r& K/ l; ?/ F$ext = end($extsub);7 Y8 N) f; O8 B; y% L" i7 w
$tmp = basename($tmp,".$ext");
7 {5 g! p) ~* X, @, V- d, f$sql = 'SELECT region, library, sort_order, id, number, type' .
/ J0 D7 ^- A  a$ [' FROM ' . $GLOBALS['ecs']->table('template') .( t* p* R" o! i, A2 z5 i3 H
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
) q/ r) K! [8 c: u# ~' V# T6 G' ORDER BY region, library, sort_order';
( @" J& U7 Y# q- \  U! P$res = $GLOBALS['db']->getAll($sql);' A8 ]8 y4 E+ C+ B
$dyna_libs = array();
5 S8 a# R, T$ b7 b/ _7 g& _/ oforeach ($res AS $row)! E! m3 I- l- i, c/ a$ O
{% Q) J$ g9 Q. D0 t5 _# S# W
$dyna_libs[$row['region']][$row['library']][] = array(; P& E; T% ~$ I$ K5 x
'id' => $row['id'],$ C. }! U7 J. r
'number' => $row['number'],
, O! K9 A3 D. T4 f6 F'type' => $row['type']/ t3 r4 G) D4 P+ `
);' u  q" s( z5 R: [* i% B
}# K' c( P4 x3 D9 {  X
return $dyna_libs;) G8 Y0 [' x; j& f+ T
}$ Z; A5 V$ T: F
5 [6 [- @% b8 M6 R  F' [% e# F
将$ext = end(explode('.', $tmp));
) w3 Q( j5 u3 x. G7 ]1 p改为
' f5 z' r$ R& i7 f# G$extsub = explode('.', $tmp);
7 s7 {* l! p3 h1 V! e/ p3 S; I. V$ext = end($extsub);; r9 j3 a0 v: l

* a- i  y4 s) D  V解决办法 2(屏蔽错误) :# j6 n/ S1 w) \7 z" ~$ y7 ?3 {
% |- m3 s. T) r
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
" d. A# g. e3 h( G/ Yphp.ini中有如下设置:3 z& Q+ s4 S: E/ c6 }+ |% w0 s
error_reporting = E_ALL | E_STRICT
9 ~. q% ?9 [. o7 t . B6 Y# d; n% C  d, ~& ~$ L6 ?
这是说,显示那些不符合编码规范的警告(coding standards warnings)。# y1 w1 I. C8 x" F
Joomla其实是建议取消error的输出,如果出于调试需要,应改为+ n6 X* r3 O  L% _" W/ v' @9 J
error_reporting = E_ALL & ~E_NOTICE
9 B6 K8 W; t  I - q* U  Q) I9 c" Y2 _
问题得到解决。
; Z( j* ^4 V) J# o
; A& J% E5 w# \1 J
" x% N5 n6 q; h. s( U- sEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
7 R4 Y. d+ M& R: d) G6 Zphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));' O7 w4 K$ j% H$ T- N
改为 :
7 I* t5 {1 {+ b8 T0 P7 @# ~/ S$extsub=explode('.', $tmp);$tmp=end($extsub);# f0 g2 E" K2 M" Z' E  j
* Y/ g5 |' `5 k8 o& u
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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