|
|
: d- x8 x) \# @7 b8 g* @5 U
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 错误2 o% H1 }5 j% \3 s$ r: ^, |7 C4 ]
解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
+ o. w! |# ]3 h 1)将function gd_version()改成static function gd_version()即可。
; e/ f% ~, \1 X# L 2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:6 I1 } q* ~/ o7 d7 Z
$p = new cls_image();, x) y5 v1 I$ X
return $p->gd_version();
9 v5 C4 n2 ]( w: |" r: L" h% E; {" ^1 j- O
0 D. L t: }/ S
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
! ?0 P6 J1 M0 \$ B2 b& G8 `/ R& I" j安装进程已中止
1 F$ W9 U: f. L4 z创建配置文件............成功
: ~5 f9 {" p P, x: r( q% x6 p; p创建数据库............成功
% O# b0 \/ O7 @$ T* _安装数据............成功# a5 x y- O1 H7 t- K8 }3 K! n H
创建管理员帐号............成功% C- Y, @# \' x4 F; B
处理其它............失败
& S/ {6 V* L0 x0 M# w6 p
+ [ ^- s4 n; U+ q- L* c. IWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
9 i8 X# x+ K! v: v7 Z无法创建目录,无法创建目录
" M z W& R$ ]7 w3 l+ k解决方法如下:% J/ _. e2 D7 w$ h- Z, {
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: % l( j, R* a, C3 O/ w
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
6 `$ i% h h* g不安装测试数据库一样可用,一样正常,不是问题.....
v2 ^8 G% ^/ ]9 L愿看到此文章的朋友能解决问题; ! |( @' F% R- e; _5 {# ?+ \, q
) F7 y+ s, [$ d9 V6 E5 I7 T
% X4 A1 t$ S& Vecshop如何解决includes\cls_template.php on line 418错误
2 I/ P% R' q# u' T1 F
+ S/ ]9 X7 X {" l- {之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
: Y/ p- i8 p- i) i8 o. DStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418. z0 @; A$ D9 j0 V1 y$ d: i# x
第418行:$tag_sel = array_shift(explode(' ', $tag));
; v1 A7 s: @0 I/ X$ z# x , I8 b- f2 e$ F4 w# Z S
解决办法 1:8 c2 J$ n* d6 S' j; [% S
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: / d2 g }9 G4 j, O( L0 D
. M' W4 E8 Y( F9 z
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);. ~) h% m( h3 c
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值) ]$ o: A( W) _3 b5 w% d
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决& @ |) I9 z/ R
0 X' N; ?) A, f6 \ Q f2 K. L( L
如:# T& [3 `/ O9 Q. q( z6 W
function get_dyna_libs($theme, $tmp) V# B; F- |0 Y! s# b( B" _
{
, M. X# q: v4 _0 k8 J$extsub = explode('.', $tmp);; g" Y3 j) Q* h: t3 e# O/ k j
$ext = end($extsub);
8 [8 P+ y) c! r! K$tmp = basename($tmp,".$ext");
$ O0 K' r; }. G7 d& i$sql = 'SELECT region, library, sort_order, id, number, type' .
, P( u' I9 N+ P5 K x+ G5 Q- w' FROM ' . $GLOBALS['ecs']->table('template') .
; H! i/ P# O0 O8 C s: x1 O Q6 n" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
" J6 z, n! _# Q" O& b1 q+ b2 X$ p8 a1 i' ORDER BY region, library, sort_order';
8 G- u* p( `9 M$res = $GLOBALS['db']->getAll($sql);0 h% Y9 |, h, W* e- U+ b
$dyna_libs = array();) U. D1 Y5 j# Z) ^
foreach ($res AS $row)% m& D& x" Z' W- |$ W* ^
{! v# v9 J" b* D2 H) ?
$dyna_libs[$row['region']][$row['library']][] = array(
2 b4 a6 n. ~$ z8 m6 b'id' => $row['id'],! C* @- E! Y1 R- n4 g9 J
'number' => $row['number'],/ e1 ]4 t- ?5 a7 h
'type' => $row['type']
9 q; K; e; f! w2 A* p);
, y& m- ], E3 O* S, z8 e4 R' b}! K- [+ T! ]5 e# `' G3 ^8 L
return $dyna_libs;! M! o' Y/ w# x; n+ x. B
}
, g$ `5 F: F) s2 w8 o6 g 7 i2 r+ Q; @ f
将$ext = end(explode('.', $tmp));
% Y# x$ A$ v! r z( Z改为
' [ S$ H; N& M8 @ V, D$extsub = explode('.', $tmp);
5 |8 i- A( K( B! k8 L, Q+ ~' i6 n; z$ext = end($extsub);3 D* z* B u/ K+ f. e
9 _ [; Z1 _9 } C4 b9 H解决办法 2(屏蔽错误) :
1 B$ \, v+ R% I: i) Q; R
% j7 R a4 Y7 g' [1 y! |5 u或则如果这样配置的话: error_reporting = E_ALL | E_STRICT; v# S* Y8 q J2 l. @
php.ini中有如下设置:1 k) [- I8 a- x$ m' s/ P3 |/ ~
error_reporting = E_ALL | E_STRICT& _- b/ _' J1 V% x( q6 d+ o7 C( _0 G
, r! B6 y# G0 _, Q' l$ Z
这是说,显示那些不符合编码规范的警告(coding standards warnings)。" E2 u8 q' d% z/ @2 h
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
4 ~* d" m; p6 ~7 M" w" }error_reporting = E_ALL & ~E_NOTICE* h% U% O. G/ k6 N* U1 z
1 t& c* X0 x- {1 i& v7 r
问题得到解决。
$ b2 O( p* `1 `" W9 X
1 \' t# k4 L3 G( [( w- f8 o" c+ n& H$ _) i0 }' t
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line/ C* w% \+ A i$ X8 N5 L4 u" l
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));9 c7 \5 U5 P l5 k
改为 :
, l% D7 x$ R6 w9 r% [$extsub=explode('.', $tmp);$tmp=end($extsub);
/ x/ f# a, I6 f, F# u0 R8 P( A- X/ {; O, O& h
|
|