|
|
3 i, P- F' {1 r; Q0 B 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 错误
" H0 T* w6 p% t9 n3 _ 解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
' g/ _ w4 T% E) T% e. a/ N 1)将function gd_version()改成static function gd_version()即可。
* W# Q q7 l- [5 P3 s J 2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
7 g4 x# s/ [: h! p7 ]% d$p = new cls_image();7 j0 r" s& x L' @
return $p->gd_version();) P1 d1 k. Q2 n
, P, c6 {8 a/ v
, `4 P6 v( i6 \1 j+ I
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
$ q# X0 V0 A/ q# Q' a( a4 a安装进程已中止1 k) P3 z4 E, K( N
创建配置文件............成功
|1 v/ W4 N, A0 K) K# b F$ Z$ f创建数据库............成功
5 P7 T( S* U" |7 }$ U安装数据............成功2 I+ ~$ r: e2 e( i ?+ M# Z: n$ W
创建管理员帐号............成功
7 T0 C+ {; S: V: Z4 G处理其它............失败
$ b/ `3 h6 m9 ]% s# x7 I5 u$ [4 D# L1 X: r* h1 A9 n; F
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
. z+ ^: o- H5 ?* L无法创建目录,无法创建目录4 U" D9 j) Z0 e& l% \, w+ J) m
解决方法如下:6 y. H4 F0 R% F0 U3 m
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: ~5 v V |- T4 I7 L, q! l: S7 F0 U
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。) g0 H' G- R4 o6 a3 Z. }8 y
不安装测试数据库一样可用,一样正常,不是问题.....# c: ]' W I3 Z+ S+ a7 ?, ]% N8 q
愿看到此文章的朋友能解决问题;
, b" F* j% e/ X) I* a' f3 \5 [. `4 H( d! ~ K8 d5 ^
2 V/ t9 y* ?( J! H- ? _ecshop如何解决includes\cls_template.php on line 418错误
. A! g+ u$ G& R9 Z6 o( t, V/ T8 @) p# o
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
' U0 F( R8 D- K i- G0 W- E$ jStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418! O5 J! W5 Z% \& l
第418行:$tag_sel = array_shift(explode(' ', $tag));
; p' ?) c- \* K, B+ r 6 ?4 \- G& c. ] @- c0 ?
解决办法 1:
( }8 T! ? e; {. S5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
% ?2 M0 ~0 G: @' e! D
% M* W0 n+ d% x( O$ g" v/ b$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr); W5 `# d- I) T. r0 N$ X9 G( W
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值6 E3 v I% ]' Y F; Q
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
) V, l' i# z" d+ u i L! Q& T 6 A, |% K$ a! U7 w4 S ^
如:
( }4 f5 q1 T/ z- Pfunction get_dyna_libs($theme, $tmp)6 p# O4 h+ v: C5 o$ a1 n
{
4 T+ l5 ^2 U* P/ D; r0 |. x$extsub = explode('.', $tmp);
l; v3 \- u% r$ext = end($extsub);
/ h$ ^" j: U8 d$tmp = basename($tmp,".$ext");- t/ q5 v! A% K L9 ^! b/ k# v
$sql = 'SELECT region, library, sort_order, id, number, type' .( T5 h* a5 Q# [& Q3 f0 h+ y0 k- Q
' FROM ' . $GLOBALS['ecs']->table('template') .
% X1 b5 r8 Y6 K& \# H; C1 s% u" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".; Y5 U9 ~% G- H s6 Q( z
' ORDER BY region, library, sort_order';
3 r4 X) h4 N8 i$res = $GLOBALS['db']->getAll($sql); Z8 R0 u6 S1 C' f
$dyna_libs = array(); N' T. {; W! t7 q5 _! j! A* I
foreach ($res AS $row)
6 C o' }- _! q7 p{
7 _# M! ^3 ~: q8 R$dyna_libs[$row['region']][$row['library']][] = array(
. j1 E: f$ X1 ^/ Y2 [5 z; A'id' => $row['id'],
- T% w3 I& k$ |7 @# `'number' => $row['number'],
0 N7 y1 ^- d7 r# ^8 ?4 w* ^'type' => $row['type']
% X. F/ _# X5 ?0 G);
: b, O5 d. n0 L. K& A* h}5 A! o" ?8 b6 |1 o
return $dyna_libs;" ~3 ~$ g+ _1 z9 E9 c
}
) t4 N& ]/ C! v0 n4 d E
' A4 ~0 S+ j1 V. U) j1 ?% R: u将$ext = end(explode('.', $tmp));2 P& U s. t) t: o6 o
改为. E- n1 P8 S# K. i% a, a' f
$extsub = explode('.', $tmp);
3 m ~' R4 \8 l* |' t& \+ M$ext = end($extsub);# G: \; Y# N6 Z; J9 t
2 o/ z+ l; t; S
解决办法 2(屏蔽错误) :/ ?8 R) Q, n% V/ h6 y7 Q" K3 b
& k, B8 j; A F3 j
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT) }+ n" K0 _) {/ r
php.ini中有如下设置:# O: x0 p; C: c1 t; j! u
error_reporting = E_ALL | E_STRICT( J( X3 f& x# _' G, `" S* H/ ?
1 _0 c5 b" u ?/ C0 k
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
9 Z- \: f3 c" t$ zJoomla其实是建议取消error的输出,如果出于调试需要,应改为
o- E8 i4 c. x+ g; `error_reporting = E_ALL & ~E_NOTICE
3 q+ }, D' h7 F2 S. b# y. w
4 r9 n' D" Q6 R/ w" a, h问题得到解决。
z* d8 S; W% U; Y7 y7 Y0 K- a P5 x: w+ E" v
, y- `) d' j' |' U1 V6 _
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line8 z' `# _& V) P1 L
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));& q4 H; Q5 C( B1 a% c j
改为 :8 I/ Z+ x0 S5 ~; v- W; c
$extsub=explode('.', $tmp);$tmp=end($extsub);
: e9 {2 J. u1 f8 a, N; d E/ R+ D2 L, {- S5 s I8 H! L4 j) M
|
|