搜索
查看: 20478|回复: 0

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

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

5 t- J- l: s" p! ^ 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  ~% d. w. r# t) g  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:3 o& [! i" s/ W; \( n: b; }( F
  1)将function gd_version()改成static function gd_version()即可。
9 N0 a- h' u1 [2 `( N# o  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:5 b' Z9 z+ I3 E+ d
$p = new cls_image();/ a, a8 s3 b1 Z: M! f! c
return $p->gd_version();
( g/ o2 h9 z2 i+ U+ u$ _3 g+ R2 o% K, ]- I
' _+ C0 f, k6 V1 _
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
, V" W& H& ^$ E* d, o5 b1 r  Q) A* }安装进程已中止
  Y4 m; D# t' d0 ^! B/ L/ N/ |1 Y' D创建配置文件............成功
+ |; i# @& ^, k- @$ |创建数据库............成功4 R& d" a8 P' {7 e
安装数据............成功8 t  [' L, i$ v" D* {+ ^1 C+ O
创建管理员帐号............成功
: |/ _8 G- e9 b" [; M9 R- N( I% \0 \处理其它............失败
3 r6 T' H) ^' u$ }
$ I2 P) s. U  m9 bWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5283 H2 h+ Z3 w5 {% p* Y$ f' Y) H
无法创建目录,无法创建目录
) W6 h- q" S  {6 p% b6 }. R解决方法如下:
, e$ ?2 D( g5 f. V8 U点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 6 h) z( A' J; _2 l* ?
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
3 H  n, i3 \4 W  a& h5 C不安装测试数据库一样可用,一样正常,不是问题.....
- ?- ~; u% h+ u% U愿看到此文章的朋友能解决问题; ' y. s9 ^6 ?+ a

4 H( s' S' B+ U( ~! P
" s9 N6 G/ F3 Q1 Fecshop如何解决includes\cls_template.php on line 418错误) |% b9 v) h2 U
* H% O$ H+ A/ ?# c7 c: N5 W
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:' o0 n7 [$ u6 u# Z9 X
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418+ p/ J. T( k$ v0 n# f, A  V
第418行:$tag_sel = array_shift(explode(' ', $tag));
& g" }; S0 q5 Z $ ?1 J  Z  k! L, v9 a+ v
解决办法 1:' E4 }( E( y9 I7 g6 T
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
9 o3 M3 J( ]$ K! M 7 V0 W& F$ s" m7 V) u* ^
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
# c1 h- |. h/ Z1 X/ Q7 N(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值/ Q7 u3 @; {/ j0 n9 G, B6 |
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
7 Q3 E- ~7 v7 ]7 Q " I" q5 {' c* p
如:
! E% f3 P/ ^4 n2 P4 lfunction get_dyna_libs($theme, $tmp)4 w  J5 g* Y8 U1 A. k0 T
{9 T, H. G# Z5 i0 ]: n3 D- D" X/ Q" Y
$extsub = explode('.', $tmp);
$ [5 v- {3 y% ~" P8 P; V$ext = end($extsub);
" g& n9 o/ n8 h# m: T7 F. g( S$tmp = basename($tmp,".$ext");8 B6 J7 Y& n' f/ c8 F6 [( Z
$sql = 'SELECT region, library, sort_order, id, number, type' .( b9 j9 ^9 |/ b( D: d+ J
' FROM ' . $GLOBALS['ecs']->table('template') .5 a8 o) c" m. h9 e3 K
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
! j( r5 N8 E. t, o* n) Y  [' ORDER BY region, library, sort_order';; h2 [" e/ n' P9 A/ t0 n
$res = $GLOBALS['db']->getAll($sql);' w, w; F, v- k3 P: g/ K
$dyna_libs = array();; E9 A( M0 ]7 _$ y! U6 q
foreach ($res AS $row)2 k$ U: n) M. I. R5 [6 P8 P
{5 j* C! ~$ b  |8 r/ G/ h
$dyna_libs[$row['region']][$row['library']][] = array(
6 j+ S. O% n) C+ G4 r'id' => $row['id'],
6 a' [% B- O" s% Y; L4 G'number' => $row['number'],
* z7 t( i* {# Z4 h'type' => $row['type']
4 T! P# {/ f7 l2 E  W# v5 j);/ Y! ]* M" D) z) A5 [
}
) r( D: ~9 k- b( Mreturn $dyna_libs;8 ?* k2 c; I! a1 l( }1 n! E
}
8 }/ ?) Z/ t% b# o" e
; S" u& z( G. A: U# L将$ext = end(explode('.', $tmp));
) Y2 U% X! O7 f0 g: Y/ E' B% K改为4 r! X  ]& u& h$ ^+ T
$extsub = explode('.', $tmp);7 x5 y4 a7 q; M
$ext = end($extsub);. S: m; p; D" n# v4 I3 F

/ r6 K& g: i, h: S: r" D+ w; P! {解决办法 2(屏蔽错误) :
* f7 T* W  _+ p
' ~  G6 o  B& e) q( p1 k# [或则如果这样配置的话: error_reporting = E_ALL | E_STRICT( l' J6 L. z9 `- Z* D5 a) C! ?
php.ini中有如下设置:4 v, p  ?5 r4 u3 f( ]' d- _
error_reporting = E_ALL | E_STRICT1 p7 F: f  o# e  z9 V2 V* A# q* I
8 c( K8 \4 |) t
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
  Q/ i' u0 [8 X7 z9 QJoomla其实是建议取消error的输出,如果出于调试需要,应改为
% P; c2 ]/ p. w& r& Berror_reporting = E_ALL & ~E_NOTICE
) F' Q5 P& I- E: a
. ?. H* a9 W# D: a7 _: u( F问题得到解决。
* N2 i: p% ]9 v4 A& ?  b4 ?& X+ J
3 w* D8 }+ b5 v
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
+ O: w: |: \. g3 u( z7 A, Tphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
  Y! ]. }4 V( P- U3 J改为 :
5 f0 i  B. n" O6 Z) ~$ U* j$extsub=explode('.', $tmp);$tmp=end($extsub);) x" h7 m. T7 B. j6 X+ Z
/ f1 z$ f0 x( ^# w, R; F. v
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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