|
|
) }/ Y+ j" [4 h* i2 v5 v/ _" b2 Y
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 错误0 v/ a% }- ^4 l& q
解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:5 B/ H$ s; D3 G" t+ d d
1)将function gd_version()改成static function gd_version()即可。
& n# \* Q% _5 K% E g 2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
A* V1 K) z; ^! D& ~$ X$p = new cls_image();+ E1 V5 g) u6 a6 q8 J3 b# e" ^% q
return $p->gd_version();
7 O- k/ R, f# j
& u. U: B5 q8 e0 l: }$ J7 Q/ z, F6 k+ |% }: G& B. a/ C
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
5 z: |; `4 m9 U- c( s安装进程已中止
& \$ d: k- ~' F( g3 w( \创建配置文件............成功% f% d0 |8 L: S- L
创建数据库............成功
* D. Y. p6 c: h/ e9 r! }$ i: N安装数据............成功
8 ?' h9 m' Z. v0 o% W创建管理员帐号............成功
% ~$ q& O* T; ? P9 D处理其它............失败
4 t, E6 W" D m$ y. \- C2 H4 p" l+ f1 I% S3 e! U: h! `' e. t$ H( ]
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
* ^, y1 I" k- s! v# m! e* @. {8 C. L! n无法创建目录,无法创建目录) `/ |7 ]' Z- ?/ T' M0 D7 V8 m( J
解决方法如下:5 J* k6 Y% m, e) z5 ^
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: " V9 X, L9 S6 u( C2 F8 l: z
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
+ T4 K/ ^' ?! U2 G, g不安装测试数据库一样可用,一样正常,不是问题.....
1 |8 @) m" ~7 j6 ^/ K% C愿看到此文章的朋友能解决问题;
# `0 P" b0 C- H! I* F& O: G+ u- X& I8 A6 O& [6 L% h( e$ t1 c0 ?
) j5 r( J+ V' Q+ R/ M5 p% t
ecshop如何解决includes\cls_template.php on line 418错误5 L9 L) S3 \7 X0 r& V
! G/ N+ z! c7 L; E8 v
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
- ]( ?1 L' H3 S- N8 LStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418' s( ^. d3 w' T, G7 s& d; J
第418行:$tag_sel = array_shift(explode(' ', $tag));% B( I Z3 {3 @; f6 g* v1 a8 d/ V
" P# ~# M& M/ T; A) L% V3 c解决办法 1:9 O0 h. E1 J N9 H9 `" Y8 u
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: ) S; E, _/ F3 D0 w# M
3 ~% |3 e. d* g m1 T$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
& d2 C0 a% P* R, E8 N2 B(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值. g$ m; |7 J8 _9 f1 Y# s- M. C) v
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
# }' N- U/ F/ b% w( Q# n2 M& b % g; E; e. K+ q
如:
" b/ {; N; ^( Z$ H- \function get_dyna_libs($theme, $tmp)
1 E Q* \0 D' Q7 k+ l/ [{
Z l9 Q9 l& p0 o& ~( X$extsub = explode('.', $tmp);
& \( g5 m/ O, n$ext = end($extsub);" O7 I* g0 m9 t1 F
$tmp = basename($tmp,".$ext");
$ ^" H: r! m( _5 T4 w$sql = 'SELECT region, library, sort_order, id, number, type' .7 u( q) C3 C. ]
' FROM ' . $GLOBALS['ecs']->table('template') .
9 u* W3 S8 `( w4 i5 W" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
0 Q2 F: _ J, x' ORDER BY region, library, sort_order';* }3 W8 n3 @! q- N
$res = $GLOBALS['db']->getAll($sql);
, `: p1 Q% u$ K6 b) o" X$dyna_libs = array();
( R0 c0 }- ~% J- S- |$ zforeach ($res AS $row)
: m; T) z, p& k: ^. T{
, u8 Q& ^% F @+ ^" I+ N$dyna_libs[$row['region']][$row['library']][] = array(" H7 u* e$ A8 v ^
'id' => $row['id'],
# e; j6 P' x1 l0 g. v: p+ v'number' => $row['number'],
9 k: y0 m$ _* s4 P. H7 H'type' => $row['type']
8 D( m' I& k( ^);+ \- C3 g/ f) i0 p& K/ v
} e" ?3 }, d" E3 S9 ]: \) P3 ~8 A- ?
return $dyna_libs;
3 S4 `* a' A7 ^! l2 ]4 k+ V. E}% [% @, e, Z/ H3 y' j t) H
6 ^$ N/ u) G, n7 A
将$ext = end(explode('.', $tmp));" G( T! c0 R4 n2 c6 f4 @/ E: @" h
改为 _0 y% E8 ]3 s9 f3 y' q! A5 p
$extsub = explode('.', $tmp);; S( S* I) ~ Z2 G2 p$ E
$ext = end($extsub);; l4 {7 d6 ^) Z: f! {1 I
8 l& [5 o6 D3 c7 n
解决办法 2(屏蔽错误) :
$ C' [0 X# ^/ b; A. o + |; H8 ]% C+ f m' c
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT3 f4 I& w. y7 b, g: U0 _8 ~2 _
php.ini中有如下设置:
. M+ \; S# d! C9 Berror_reporting = E_ALL | E_STRICT
0 k+ b2 L* k3 }3 T( [7 [
4 A' h8 X* i# W/ w9 X. e- p这是说,显示那些不符合编码规范的警告(coding standards warnings)。
. P0 w& v% T8 X0 S6 L$ f% ]Joomla其实是建议取消error的输出,如果出于调试需要,应改为
; U H2 h( V% `3 M7 c0 Werror_reporting = E_ALL & ~E_NOTICE( v6 p- U$ u) T1 R3 O- i
( _- B8 N( d$ \; S+ p$ o# B: f
问题得到解决。2 f8 ~ @* ]; Q) f; n5 G( _! l
/ a$ G* x# Z2 Q
$ v b* v, p2 Z4 p2 ]Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line. p- u, _; l# g6 e: G, V% x
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));+ i% z' w7 f% Z& l* j1 s$ u
改为 :
3 P$ z; {/ I, _) U. q$extsub=explode('.', $tmp);$tmp=end($extsub);4 l, Z: o& v* e- ^
2 s, v- l3 r0 A! T0 q6 O |
|