搜索
查看: 20403|回复: 0

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

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

, [8 w# ]3 {& W' q0 |' |; k 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 错误
. l# @9 v( _& c8 ^; M, `) G  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
' ]) q' n& z7 E+ @5 u9 Y% Z# w  1)将function gd_version()改成static function gd_version()即可。( B6 i+ Z  `0 K! k
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
8 w7 ^/ L6 D: Z0 z$p = new cls_image();
+ T# X! Q' I  ^! H6 |return $p->gd_version();
- M# ~# t& S8 @1 E$ ]3 e) T0 w1 U( d( D
0 y; D- b/ C3 D, u, M4 n- |+ k9 q6 j6 l
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:! W$ j! @" d) ^! P8 M
安装进程已中止
4 E, r/ j; \% s( _0 B% K创建配置文件............成功1 J4 `  V( n$ [* J1 B6 t' S5 w
创建数据库............成功
+ L5 s1 n6 ]" [安装数据............成功
0 {0 w, Q1 P% n8 z创建管理员帐号............成功8 ^1 S' u8 r! m  d1 p
处理其它............失败; c/ I6 e, y7 X) s
1 H! I: @' K6 E% n2 `$ f( ~
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5289 n; \' Q7 x+ U! U* t4 g7 j
无法创建目录,无法创建目录$ @9 a2 G& P1 t
解决方法如下:3 s. U* @2 ~) }0 |
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: ; |$ o- M( |! h
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。/ T+ _3 A. Y' m- e" ]$ N
不安装测试数据库一样可用,一样正常,不是问题.....
6 e7 N: P0 r! z  Y愿看到此文章的朋友能解决问题;
* d7 j% ^+ J& `4 X+ I6 V
0 {8 [; M% E, O2 O) v# ~4 j9 Z$ Q" ?" R
ecshop如何解决includes\cls_template.php on line 418错误( _! S# N3 f# e: K- r
; n' e; B  R0 _0 ^* m5 V( s
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
, R: M: M. n4 A( W+ L+ ?" Y, X3 [Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418' L  B0 z  ]) Z2 M8 f% N
第418行:$tag_sel = array_shift(explode(' ', $tag));
  M$ o$ C, I: Y
/ a0 b2 F; c, M- b  ]: k解决办法 1:! t/ j$ o4 m1 J7 r6 y
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
2 ]6 J& B  W) Z2 Y$ R/ f; K  q 5 s) m. J7 g# O, i. W* R
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);9 B  F  g! ^6 s3 _. ?0 D$ \3 Y
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值: V3 I2 F+ T  |7 H
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
5 K" B+ g, p0 s
( n9 O* G* }0 T/ i4 n' P% [如:3 e+ G7 @9 u/ |/ Y
function get_dyna_libs($theme, $tmp)
/ j$ G; o4 k8 n3 V& A{
2 q8 ~" n4 ]- ~1 O" B& p% g$extsub = explode('.', $tmp);
8 n+ A0 ~4 M9 g2 t0 ]8 ?. z& C$ext = end($extsub);
) T( X4 e  z. t! X$tmp = basename($tmp,".$ext");
6 y2 a9 G6 C# U( T$ m$sql = 'SELECT region, library, sort_order, id, number, type' .
- C6 c" R; ~- t1 o' FROM ' . $GLOBALS['ecs']->table('template') .
6 X) \3 u! v0 i, ~3 _! `: x$ r" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".7 \! F2 C: e7 J% _( r% M6 U  R
' ORDER BY region, library, sort_order';: a# H9 B$ b' s
$res = $GLOBALS['db']->getAll($sql);: T' D1 N3 O- A* w& ]% Z5 ]6 n+ v
$dyna_libs = array();4 U9 o9 Q0 e* V1 h, p
foreach ($res AS $row)& t3 }- l6 P0 c9 x7 z
{
8 H. L/ `4 P$ O% q( P1 ^/ U$dyna_libs[$row['region']][$row['library']][] = array(* `$ j3 J5 U5 j- `: L" ^( \
'id' => $row['id'],
, h" N! Z) T* T2 j5 c7 L9 l'number' => $row['number'],
# w1 A& B! K  u% W9 x) ^* U' x'type' => $row['type']
) I5 o* u' V6 n);! H! a# A' c9 Z4 ]% D! V( ?
}
) r. E# S- o1 s- t2 lreturn $dyna_libs;
7 ~& p7 W( ^9 x1 M; H  l}
/ _6 i' Z/ K+ F' z; M; I3 G 1 g* n  g8 L/ H
将$ext = end(explode('.', $tmp));
% D1 L6 w/ E. j- g. {7 h改为$ l) t* o" _& V- i% D1 t
$extsub = explode('.', $tmp);
- o" d: ?% E$ i! {+ F; @$ext = end($extsub);2 G9 u2 j4 t4 S/ }. A3 y# M
5 F8 k) T/ h0 V2 [3 o" Z
解决办法 2(屏蔽错误) :( Q# o. n6 J3 n7 J

& b/ g1 x3 B1 B或则如果这样配置的话: error_reporting = E_ALL | E_STRICT, n' T! n1 t3 U
php.ini中有如下设置:
0 e! ^+ F! B  J# A2 _9 Z  M, cerror_reporting = E_ALL | E_STRICT+ }  J; p& L# s+ b

5 a$ m; K6 [6 y8 g这是说,显示那些不符合编码规范的警告(coding standards warnings)。
6 c3 F6 g+ F* r, }Joomla其实是建议取消error的输出,如果出于调试需要,应改为
* c6 c& V" I! D: X- l9 o) serror_reporting = E_ALL & ~E_NOTICE  Q- g3 y+ u0 V0 k- A

+ @+ _4 N  }- q, z2 J问题得到解决。3 J( j, ~3 [5 s5 C

# H/ T" k% S9 n. A) M7 F0 o# U& ?) M: W, f) k
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
! i& X$ D  n+ Y+ E" uphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
  w+ R! M  c/ a8 O改为 :
+ t4 _  H7 x' z! N0 S: M$ P$ q# i6 n0 P$extsub=explode('.', $tmp);$tmp=end($extsub);  J; ~9 H. U. S' s" Y

, L" W% _4 k* O$ R- S
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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