|
|
5 C& s% L4 a# B) W/ j U+ 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 错误- q9 H" n+ E& g% S3 [4 J7 I/ G$ s
解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
- B7 S1 B4 w% a 1)将function gd_version()改成static function gd_version()即可。
3 B* m) P1 l B3 c5 w 2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:' Y; J$ s. U% ~' \6 I
$p = new cls_image();
3 G# O" J( s6 e2 {" [6 Wreturn $p->gd_version();, k" S+ V/ X/ V8 e
" G' i3 i6 _! U
( J6 Y; o1 U0 ^0 X( M& `& z3 E
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
/ }' i: p2 V8 D% w4 I安装进程已中止! V: X* e8 U: W
创建配置文件............成功/ v d! L1 {5 G4 J4 u" q3 F/ e
创建数据库............成功" Q; T/ l. @1 d- |- u$ l
安装数据............成功 e5 I6 p4 w8 q2 H
创建管理员帐号............成功# h, U ]5 N Q" \
处理其它............失败, u* M7 P _- I0 J! y* }& P
3 k. t* {- p) R! ^9 W, j
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
3 j+ i! F! Y# S) @& G1 a无法创建目录,无法创建目录" _3 w, X* T, _( k/ r. x
解决方法如下:
- a1 X' w4 M r; Y. M点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: ( L/ N: ?/ E, h0 @( V
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。) d% V% u- Z! }5 N' `( J) p
不安装测试数据库一样可用,一样正常,不是问题.....
( i5 E5 M* S4 E4 G, Z愿看到此文章的朋友能解决问题;
2 U0 Q z- K+ d6 ?# p; Q/ q' _, p4 Q% M1 }/ i1 x
5 X7 m; [2 M" L3 c4 s3 N+ @ecshop如何解决includes\cls_template.php on line 418错误+ o3 t6 `! l: O3 {
# P& X8 ] a; f$ L/ }
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:6 [. K/ T3 R, m- |" c
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4184 m9 ^- P9 I( M9 ?, N# U* O; g
第418行:$tag_sel = array_shift(explode(' ', $tag));
( }2 r) \4 ^( g! y- L- h4 p
* y7 S. S" L1 D' o) L解决办法 1:
* D3 Z$ Z* J+ L8 D9 Z7 c4 c5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
% u" Y* P: ?/ D & S9 y& M" L2 ]' W0 l3 k3 V3 Y
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);' F4 j: C. K$ i% Z2 \; t3 j( c
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值3 u: |1 ^+ t& l% j8 X) C
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决& s1 g* T* o9 J' z+ ]6 T
/ K; p% |' _- b8 y2 R1 A( b5 A; H如:
, X$ k9 \& W8 v/ D% H/ Tfunction get_dyna_libs($theme, $tmp)
$ J8 {& S2 _2 I: o \{+ J" F, Z8 j5 U2 ~
$extsub = explode('.', $tmp);- z/ X) C# F5 f0 p8 U
$ext = end($extsub);
0 y7 T' c6 D; I s" l3 [% I5 N/ r% j$tmp = basename($tmp,".$ext");- ]6 N* H8 H- D% i1 z8 t. W
$sql = 'SELECT region, library, sort_order, id, number, type' .$ G% d6 R; a6 \1 q
' FROM ' . $GLOBALS['ecs']->table('template') .; j( {/ N# @% D8 o5 @! K0 L
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
' U& t9 e* t) G6 P' ORDER BY region, library, sort_order';
% w0 F( C% z( I! A% V$res = $GLOBALS['db']->getAll($sql);) O& K! Y' ]4 {
$dyna_libs = array();
! Z- M$ k6 J' M$ [1 U# P. K6 D0 m, e6 Gforeach ($res AS $row)
2 j& w; D( [8 A/ E+ [2 j4 _( f{$ J3 C' w D: r) h3 b' I& |: ^8 ]4 C: V
$dyna_libs[$row['region']][$row['library']][] = array(# o, P, W* r; V( s7 h
'id' => $row['id'],
* p) o' ~+ @ [8 D: Q9 r8 D) {& y7 J% W'number' => $row['number'],; i1 o @7 v- Y* Q- T0 P* [, B
'type' => $row['type']; R C6 t3 Z* n* O& c
);9 {/ F; x: B/ J" e- {
}5 s7 i/ R) z& B$ W" f) M
return $dyna_libs;
* j1 P" O3 R, D2 o$ ?}
. ^+ a( x( u8 v2 u 9 e* Q; a) u7 z( ]9 a4 d( `
将$ext = end(explode('.', $tmp));
" N; Q$ O$ Q: M! [改为! X, m; x: O( H! N
$extsub = explode('.', $tmp);6 D# }$ E: `+ v# \- {
$ext = end($extsub);% ^, F8 b5 |; d+ @. X* I9 V& ]9 O$ G" N
0 q6 m- Q+ y0 q3 |& B0 C3 J
解决办法 2(屏蔽错误) :) S9 Y$ E/ z/ ^% x! U) {( f% f+ @
0 E1 L; G/ Y0 I5 _0 e! W或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
% u7 w' C% t+ b3 Q4 gphp.ini中有如下设置:
* t; u+ h0 _# e+ o- w6 n) Verror_reporting = E_ALL | E_STRICT$ \% E4 b6 E E4 Z3 N1 K* E! E
7 n, p; m& c4 P& l; W% y ?6 t
这是说,显示那些不符合编码规范的警告(coding standards warnings)。
Z0 m6 T+ K5 T, {( _; \1 h1 Z& bJoomla其实是建议取消error的输出,如果出于调试需要,应改为: L @ N/ X! ?! G
error_reporting = E_ALL & ~E_NOTICE% W- i! @9 J3 a$ `* x, u
: }5 z' `0 b. R5 R) Y$ K9 [+ M
问题得到解决。0 W' U' m' T) ?0 W' ]& u
, M( ~6 k( y; M
- x* u& T) v6 q4 }8 s- c- x4 P* g
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line) z" b- g8 U" b
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
4 e8 s; l( M6 O9 l1 O5 u, v' n& i# V改为 :
/ R$ Y! _6 [- E; [$ h* ]( K7 \& X$extsub=explode('.', $tmp);$tmp=end($extsub);4 ]/ Z3 h. o2 {4 H- o) w
9 j4 X) g1 i5 M; W6 W S8 f
|
|