|
|
3 S# d. E3 }1 t
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 错误
8 S5 p) J" }- _! C* p5 @ 解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:, U1 V" [$ u- f
1)将function gd_version()改成static function gd_version()即可。
2 Y& @( F1 N& {( Y" i" } 2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成: m) k1 Q: s3 b- m
$p = new cls_image();
+ m: h/ [1 C" p9 O. d& c/ Wreturn $p->gd_version();# q1 R3 i# P0 k( _" k; X7 _
n9 ~! B9 E4 m! s1 c( |2 P8 J2 U3 S& H2 U+ d; ~
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
# @* d: d9 O6 V$ c安装进程已中止
0 [( g) ]! B0 @- f9 o8 g/ E创建配置文件............成功
, o+ j' T$ P7 o3 N; x" m创建数据库............成功
# G2 u+ f) D( g, W: E安装数据............成功 n5 _2 V# K, E
创建管理员帐号............成功
b# Q; t* D2 K1 J( m% ]处理其它............失败" x9 n/ e3 ?" X# \ S( M/ P* y% W- D
0 v! s4 x+ }* \
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528& Q6 ]3 \$ z6 Z& l
无法创建目录,无法创建目录% h) z0 S! k( n; N( p+ b( q4 S
解决方法如下:
+ j- m4 m( O H v) \/ M( D$ h点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 2 I* A7 D) k, \+ i- ]
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
l) x; S# |. i; _1 C+ ^不安装测试数据库一样可用,一样正常,不是问题.....
% Z3 k: y' g# Q8 W+ o3 [: n愿看到此文章的朋友能解决问题; 9 i6 {$ |' i. c; k
8 K, u6 {* v0 x, F2 _
% E* a+ S) y* b! E$ necshop如何解决includes\cls_template.php on line 418错误0 K3 P: S0 @* i3 I
% _6 }, G$ k; F5 `
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:! y. p+ ~* l( P2 m+ e/ B
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
7 o. `# ^4 s7 J2 \第418行:$tag_sel = array_shift(explode(' ', $tag));8 ]. J. B! I O$ |! K K
! F6 k9 @, H9 a( b% C
解决办法 1:
/ \, A8 `( B2 d/ Z7 @5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: ! t. q, a1 H9 z* q8 ?
& s# @$ Z; \2 C `( x2 A$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
# Y8 s8 ?: w! f(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值0 j" U1 f( [: L: Y# t" K. F9 Z
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决4 \9 k2 {; B! m2 f* J8 o7 d# d7 g0 z
7 k! Q6 g- `& C5 G如:
; i: \% r+ w, S5 K/ i0 ]function get_dyna_libs($theme, $tmp)8 T5 y3 C. P0 s% H( Z
{+ x5 P* q1 h+ J. p0 }! q3 l! ?! r
$extsub = explode('.', $tmp);
0 G- m7 S2 v" r$ext = end($extsub);6 g! y: }7 q# ]$ b1 N( P, a; k
$tmp = basename($tmp,".$ext");; @- H9 G/ @, G: W, s
$sql = 'SELECT region, library, sort_order, id, number, type' .
: d. [- S: t% C' Q2 J' FROM ' . $GLOBALS['ecs']->table('template') .) u" e& u5 x: [" m, t$ j0 q
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
/ `5 E- @6 M& q! X) A" R l: u: P' Y' ORDER BY region, library, sort_order';
) {& G1 F) F _ ^' W" j! @$res = $GLOBALS['db']->getAll($sql);
2 E6 Y; E& [2 g9 X& Q$dyna_libs = array();
2 C& H* p. g2 k6 W" R+ qforeach ($res AS $row)
' `3 G2 s: Z. P2 l& l3 R2 P4 j{
- f" J" \* l/ B: t& N5 X6 B$dyna_libs[$row['region']][$row['library']][] = array(
8 e2 Y1 D2 o+ G9 E'id' => $row['id'],$ P) ?5 r2 L6 ]
'number' => $row['number'],2 o' C1 B/ T8 j
'type' => $row['type'], _" @! }0 c V; [/ o% Q1 D
);8 j6 d) \! i* v; y& y
}- E i3 U% \7 c8 W+ z
return $dyna_libs;3 `* a: P d! z
}8 t+ W, c3 m& J4 ]2 k8 G
/ P: K0 V) I- Y- j, Z将$ext = end(explode('.', $tmp));
( K* D) I" o0 Y% l' z8 y改为- q9 k9 z% g6 R- J, K! W
$extsub = explode('.', $tmp);; B; D. E% {/ J& |
$ext = end($extsub);
D8 p: y- y+ w- V- U% Q8 b
$ G( m' v8 i' ~; e e, z- D' ^0 ~解决办法 2(屏蔽错误) :1 w+ `1 {( ]4 G; x6 ]
( a$ R& A' D" L+ m9 p
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT2 u6 R+ M( r K' i: F1 S- a
php.ini中有如下设置:
; [9 r: B# I% T+ {: ?/ _" ~error_reporting = E_ALL | E_STRICT
" f7 K2 g R \+ Q3 H, u 9 o# j; V" X6 {$ D
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
* y) S# w0 M6 s) V7 x" U9 pJoomla其实是建议取消error的输出,如果出于调试需要,应改为
9 ]2 C# |! }( r: l' {error_reporting = E_ALL & ~E_NOTICE3 P7 W A* B1 X: u8 `8 N
) `. Q& f' M" _! L1 a问题得到解决。+ A- U! g! I( p! ^8 K! O& o
6 i; A+ P4 Y& `4 `( D' I
/ B. r$ b9 V3 b4 REcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line3 B8 h# D: t F7 }% P/ W
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
' M& A- Y! F6 v' b0 U' R改为 :& k: c0 I% Z; }! ]; B6 W. X
$extsub=explode('.', $tmp);$tmp=end($extsub); ?- s9 T+ A L" k7 F* O: l
! m8 u! V* _! n6 [3 W1 C! z* F7 g
|
|