|
|
% r2 F) @4 M. J( K4 s/ `' @
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 错误
7 V1 o1 n% _0 ?2 b) {: K 解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:, Y% l6 x3 c1 n* c
1)将function gd_version()改成static function gd_version()即可。( D$ ^4 L/ u6 V; D4 b. X9 C
2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
) b8 o& l" h% {, L U7 W$p = new cls_image();
: X+ l" j3 `% F* b/ c! Vreturn $p->gd_version();
5 ]( N( x. ^) \% ~, w a, V$ g4 M% ~; `. x. u
% u. B9 L: M$ G6 u7 ]
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:3 ~2 n4 e) r4 C8 f) B; F% ?
安装进程已中止 R* h/ t7 j. V. X4 Z( b+ G
创建配置文件............成功
% k* ], i# U$ P创建数据库............成功0 w0 i l6 w$ V6 a6 \& w
安装数据............成功
6 Z. p: ?0 i7 {9 Z# Y# [创建管理员帐号............成功
: f& W! h" L9 {4 f. Z z" K* C处理其它............失败
2 {0 e. G- p- f! [) D- A+ ~' @) r
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
: C6 P7 }4 z# j' u' D- s无法创建目录,无法创建目录. U1 w4 B: `: x. b
解决方法如下:
% B, }6 t% G' k/ Y" v$ u点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: : B9 T0 p- l! K: a6 w; k
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
2 e. f; ~/ o4 O不安装测试数据库一样可用,一样正常,不是问题.....
) |3 R# o* a" n0 j5 {愿看到此文章的朋友能解决问题;
* U' { _' `" @1 w8 k' O- `$ s# _
2 e0 o( ]( v) t8 n) K4 }: c. _- l" L; T( H6 x+ F
ecshop如何解决includes\cls_template.php on line 418错误
* B# v# d) Y2 a7 K
, |) ?% _, |. { C7 u( W之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:5 k# O7 `. M; ^5 h$ Q
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
( D7 g2 o, z, |( U, {$ m第418行:$tag_sel = array_shift(explode(' ', $tag));
! H8 c. y/ @! z
7 J9 \6 R2 c+ F! a% ~5 w! X' ^' i" u解决办法 1:$ J! q7 A C: m$ ^: \5 L
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
3 g' S9 d0 f5 {. z" o. h * q; V9 L8 C/ a3 h: K, P+ M7 I
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);, E6 o: e; Q. d! _
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
& Z' g- W( r5 p5 S. X& B同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
2 k3 G B, U4 P [ ~( E* G! P ?3 k8 M, l, C: ? t
如:
8 X. b: M8 @) o" p# A" K% h! Y5 hfunction get_dyna_libs($theme, $tmp)
& u! ?4 v5 Z0 B; q/ I; ~{3 S. T, V9 p ]: {: i+ p( U
$extsub = explode('.', $tmp);
5 h: b' }, Q! B! ~+ x2 ]& v6 Q$ext = end($extsub);
" Y$ t+ ^8 A/ X3 }. B7 X0 `$tmp = basename($tmp,".$ext");8 [% x0 @: ~6 h( S! c
$sql = 'SELECT region, library, sort_order, id, number, type' .: c$ n+ n+ d% T- v* U
' FROM ' . $GLOBALS['ecs']->table('template') .7 F1 N/ q2 o7 H6 ?
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
E5 R J M# M0 |# |& B9 b' ORDER BY region, library, sort_order';9 v7 G- t2 J/ h
$res = $GLOBALS['db']->getAll($sql);
+ s9 u7 W7 j* m* c6 A* ~' ^; ^$dyna_libs = array();
$ v6 q1 y' W6 |) W. J& g9 K. Y. c- Xforeach ($res AS $row)& f* n5 P5 Y9 T2 q
{
. j* T( P& b2 B; p& q. v5 k$dyna_libs[$row['region']][$row['library']][] = array(
+ a% h5 H; f7 v7 Q# E+ u& u" j" K'id' => $row['id'],
0 S4 J$ W) B1 F$ I'number' => $row['number'],
+ e6 A" j% A4 n6 f'type' => $row['type']& d) }0 |4 r0 q- t- M9 B* H# s! [
);
0 Z1 C" I/ F1 t/ p P}
2 K, {2 `4 _) T7 y5 oreturn $dyna_libs;
' h+ P" @6 a S3 M& f}
8 o9 U7 ?7 Y7 Y/ A- Y
1 q8 U& z: o4 F" _将$ext = end(explode('.', $tmp));6 g$ C! x# v" e: R! ~
改为
9 u1 L9 p# W) x# j7 y$extsub = explode('.', $tmp);5 S; v2 T0 T& s
$ext = end($extsub);
9 Q2 i$ W. d( p# v9 j& F f 3 Q9 E! K* n3 F4 [+ J$ r1 T
解决办法 2(屏蔽错误) :4 h8 |4 f0 Q' i: w+ v- ?% P9 m
2 u) c! [. t# K5 q* v+ s: S9 W( S0 }或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
# J# j, k [$ m3 Q" z8 Q4 Hphp.ini中有如下设置:
" M" r& `! o& x1 ]% r2 _' }. _2 Qerror_reporting = E_ALL | E_STRICT
! Q; O4 a8 W& t
4 p5 g% f8 I; J# j这是说,显示那些不符合编码规范的警告(coding standards warnings)。1 j6 Q9 P% O+ Z/ c$ k
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
8 e" G" e2 C' ?% g. G- H2 serror_reporting = E_ALL & ~E_NOTICE
$ n$ X6 r. O. w. E7 k 5 S6 |6 o# p( x! l6 r
问题得到解决。 b7 z, L$ d/ |/ d
$ w q$ m. {- t" i/ i+ a# d
3 W, l8 h6 A7 f; _: @Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
: O" r1 H3 @ U$ yphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));4 r/ N; f2 a- b
改为 :; e- k9 k1 ~8 J6 n$ z: g3 G! ~
$extsub=explode('.', $tmp);$tmp=end($extsub);
& T: E* Z% R! W5 y2 c6 a' i6 R0 q5 g5 |
|
|