|
|
- S; {: m0 _- t1 ~9 r* ], R+ B; W0 X$ O
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 错误
3 B/ f8 A }$ o* N 解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:( H. `" k" Y# B/ Q
1)将function gd_version()改成static function gd_version()即可。! d, A" R5 I5 ?1 p9 O# M
2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
1 j* y9 s; z2 K/ j$p = new cls_image();
0 L7 u; n. ^" g* R( X/ wreturn $p->gd_version();9 C$ X7 L# M% I* ^9 [
) Y, C f% c' G6 ~; w @
. B- |/ N: v7 s% K. C. Z下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
% }% \* v& [; H$ [ K; L安装进程已中止* W" t: G0 m# C' L
创建配置文件............成功
/ g; I N0 g, d3 q; U0 y6 X创建数据库............成功3 q* }) ?0 t% t+ @
安装数据............成功
4 ]! L; }" m+ t% t; I% P" Y创建管理员帐号............成功6 t) g. t& K* [/ c6 N
处理其它............失败
& v+ Q/ s; F! [" z; ~- e* X4 g" m: B P H( I( ]/ N2 e
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 5285 {" C, ?( q; e `7 c, y
无法创建目录,无法创建目录
- @: D+ d/ i$ N1 q9 ]' |解决方法如下:1 Q2 F( `" I# M' E/ |0 `& |
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: . p7 C' H. a2 \1 _0 c* l
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。 \0 p7 k, |. X5 r. l
不安装测试数据库一样可用,一样正常,不是问题.....
' V5 [9 T7 v. o3 B8 _7 o愿看到此文章的朋友能解决问题; ! q/ T9 z# S9 t( L& K; T
3 G+ f2 q6 E& A: W* Z8 _7 k2 N
! ~4 F* ]9 D* W; @! `ecshop如何解决includes\cls_template.php on line 418错误
2 F+ X, q3 A! v; _& M8 t* ~
2 @8 d* y# t8 p$ `& g% h+ H之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:$ e; S- u, |$ x( G L
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
& j, w1 ?$ N! o* s( ~$ P6 O, n5 \5 I第418行:$tag_sel = array_shift(explode(' ', $tag));
: _1 j+ C+ {8 r3 D+ `0 l5 n / m0 V [1 j9 ^! J
解决办法 1:: Z1 v4 j0 ]: P- G+ A
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: - x2 p4 C. w6 }5 ?7 h+ q O3 w
# n) E5 }* c. `. ]# U! e* V
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
" c) D" ?0 o4 a& L4 Q& ^+ ^" J(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
; m3 e# r1 D# K4 V+ S同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
+ k5 W) ]! T! H1 N! y! b5 A
: f, E8 k2 {$ F8 k- {如:6 [, [5 O- `/ S
function get_dyna_libs($theme, $tmp)
* _! d4 O: \. X3 |( c{+ v# a# I3 N* Y; \! Q. _! ~* A8 c
$extsub = explode('.', $tmp);
) L( y( h" U( v" ]& u! n4 e' d$ext = end($extsub);
* `7 E* T+ ~( ^0 F) a$tmp = basename($tmp,".$ext");
. ~# A. C, Y! J3 t) k7 Q$sql = 'SELECT region, library, sort_order, id, number, type' .
+ d' X: _3 H) ~! s/ t' FROM ' . $GLOBALS['ecs']->table('template') .
# q% v: k6 ]. k" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''"., M: c& }8 s4 J- {8 p4 o
' ORDER BY region, library, sort_order';
/ }6 [- G3 P* S! G+ d B5 ?$res = $GLOBALS['db']->getAll($sql);, n+ r3 y( Z$ R9 A$ q$ A3 P
$dyna_libs = array();" q- U, o; U, m+ {- @6 C* C
foreach ($res AS $row)
+ \$ }- }. |! E& A% J{
) o& s9 v' {. w9 y4 s. \$dyna_libs[$row['region']][$row['library']][] = array(% p9 ]7 `: m3 u+ |# y, `
'id' => $row['id'],; ^" k% }/ B$ B$ F* P
'number' => $row['number'],- R$ D) d2 |+ e1 }9 f7 h
'type' => $row['type'], }, i; K$ ?- n& j, T- x4 x
);' P' `, Z: d y R' H8 n/ M& t
}& F. ]* G6 U/ p7 N. u
return $dyna_libs;
9 q! N" f! m* D) J0 j7 q}
- _1 [7 [5 o/ q* J 5 U1 ]0 Q$ J% q9 u& v7 S6 I
将$ext = end(explode('.', $tmp));
; e( `) J* _! _改为 j4 l$ u+ @. y6 P# X/ _
$extsub = explode('.', $tmp);
8 Z; [4 ]+ B% |" E. k6 [$ext = end($extsub);
) V: U5 E: b1 ^) x , n; G6 r7 \, e
解决办法 2(屏蔽错误) :
9 H# C; Q3 V3 j6 |) g . e. T$ b7 o! @% p# o1 f6 a
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
: }1 N/ N0 E, ?0 O+ `php.ini中有如下设置:8 \! M. g) j1 a4 V
error_reporting = E_ALL | E_STRICT
2 b) E! ~; t, v O+ W& X# x0 d6 ?
" H: M( N+ R1 Y+ X7 ~+ b这是说,显示那些不符合编码规范的警告(coding standards warnings)。: H; ?7 c/ ^2 E8 I
Joomla其实是建议取消error的输出,如果出于调试需要,应改为- x# \0 Y+ @8 K! I
error_reporting = E_ALL & ~E_NOTICE! G3 v$ B/ J6 {/ p1 N0 @( _5 c |& D
! }! O) a" D8 l% p问题得到解决。# u+ ?- {* J, l, ?) P; V
: P. Q& H) ]$ P. s! \+ { k/ v4 `" `- ^' a/ T8 t9 [6 K
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line2 G2 V4 l- H2 V3 D# S1 W4 n1 {
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));8 L. q) c: G5 c3 K' Z! n% v
改为 :
5 I, z1 S8 U* S$extsub=explode('.', $tmp);$tmp=end($extsub);
8 |- ?' ? I6 S
+ _+ |5 x9 W+ V! E( L6 K7 o. L1 y% ? |
|