|
|
; j; N6 q. m* D% C/ f Y* B
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 C* r9 Z6 A7 N8 E: A1 Q0 B1 [
解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:- m( w# B+ F6 S- y0 {- A$ Z4 F4 q
1)将function gd_version()改成static function gd_version()即可。
) W5 b3 x1 m; z3 R3 [) s, I 2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
9 K$ P2 {6 D) o6 v$p = new cls_image();
! p: r% y! V. v6 g4 K1 o8 \return $p->gd_version();
+ J+ W* C! C! W' r/ v6 z/ Q0 S' d& O% j. W
8 k+ Z- A% a& ]8 u* B
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:9 e3 h+ A M! ?! s' m1 J
安装进程已中止
: ~ p+ B. x: U9 j r5 @创建配置文件............成功( I/ x ~& } ^) s" p* ^( c
创建数据库............成功
# g) z! D+ f' ]安装数据............成功
% W1 M1 k3 _# q- m( [2 P创建管理员帐号............成功: W6 i# x2 J/ f/ K4 F7 a
处理其它............失败; m! s/ l# @. E3 ^' l
( ~5 q: `; Q5 T6 q0 }; V8 RWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
! _" j# Q, L) z* o' E% r) I' o; N无法创建目录,无法创建目录
& J: k; d& Z3 h+ a% y; e解决方法如下:/ A4 m3 S. q- b. p' B
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
3 i% Q: G$ V5 g7 r3 h9 e(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。- h8 B9 {* j* G2 a
不安装测试数据库一样可用,一样正常,不是问题..... u" ?' v* t/ q3 v6 t1 L
愿看到此文章的朋友能解决问题;
. G3 y$ J; D! g9 L0 ~2 v3 P! w1 n* `* ]% u) i! ]" Y
b: B& ^. B8 I- c: @ecshop如何解决includes\cls_template.php on line 418错误; v+ T+ K* I" R/ N# l
5 y# K- j5 ~0 }8 S
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
6 |! D6 s( q1 yStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
3 t# ?5 l1 l: k% g) D9 G/ z9 y! c第418行:$tag_sel = array_shift(explode(' ', $tag));$ R+ A/ ]4 X+ q* \. ?1 b
9 z. D1 o: B+ |4 ~4 n* Z解决办法 1:
, f) a' ^6 [9 ?" j X5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
$ j, g9 J# W/ N2 G- s; R' o9 `, O , A' v( e, H$ \3 H; _4 X8 U
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
- n$ C6 F( V! d( M3 P(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值5 X8 i, N% P& D1 u
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
3 E, u* R4 v$ j; n, k1 w ( @ J5 \) k8 G" p, p
如:
( `. x8 ~- `6 p" K7 ]% mfunction get_dyna_libs($theme, $tmp); \ v+ T2 P6 N
{1 q, d! W$ h' j
$extsub = explode('.', $tmp);
. e: g9 Z( C, Z- e, } s! ^$ext = end($extsub);
5 P9 v7 J" m, d- |2 a$tmp = basename($tmp,".$ext");$ y/ L1 H# I0 I4 I/ D
$sql = 'SELECT region, library, sort_order, id, number, type' .
, |$ o6 ~. _1 h! A" e% K U' FROM ' . $GLOBALS['ecs']->table('template') .
7 F' p. K. W- J3 j: p: d" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".! c( d3 h5 s0 n- F/ N) i
' ORDER BY region, library, sort_order';+ d5 l7 k2 |. e2 h$ o7 M
$res = $GLOBALS['db']->getAll($sql);: m9 i" N0 T" ]" ~) _/ |
$dyna_libs = array();
" t: B8 J( v6 ^ U- eforeach ($res AS $row)
/ j; ]5 ]. \- o, x. P. u{
$ p% Q8 ]% S3 r* p# }0 ~% s: f$dyna_libs[$row['region']][$row['library']][] = array(
* V" L; a1 u3 u; A2 e0 _'id' => $row['id'],. O: _: _9 B! Z2 L. o
'number' => $row['number'],) V+ F" z" {/ j8 N2 v+ }% e
'type' => $row['type'] Q( C+ y( k. b7 T
);
% p' F) I2 i% @" |: K# j; Q( U}
3 Z6 V, M! a+ m+ @" wreturn $dyna_libs;
* T# N, z! m8 q0 ~}) p5 K( b* }4 W! L) R: O9 @" L) N+ {/ x
9 Z* V" q' v1 j/ u# B) t3 s; O3 J
将$ext = end(explode('.', $tmp));: Y/ i F, _" g# U r K# J
改为# \) J0 ^8 r, Z1 l% v+ I& z9 i5 v+ Z
$extsub = explode('.', $tmp);
8 A) F8 D- x L0 H$ext = end($extsub);
6 c P9 g. [1 |# l
# H) H# r8 E6 J0 [4 g. y% w- r解决办法 2(屏蔽错误) :
2 O( g8 O- i3 @8 O* n+ e / p: N; u2 b' b7 o- ]- y% |# q
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT# E" u( H; y, L* b
php.ini中有如下设置:
% G8 }& g7 n& `! o5 ~error_reporting = E_ALL | E_STRICT; ^3 q) I, H! v9 z* l$ ]
, K$ h- f6 ?, y1 L这是说,显示那些不符合编码规范的警告(coding standards warnings)。
( z s' I1 Y3 v& G; cJoomla其实是建议取消error的输出,如果出于调试需要,应改为
0 u1 e7 Y8 ?* Werror_reporting = E_ALL & ~E_NOTICE9 [! @2 k& c, ~5 M9 L% K. r3 N: ]- y& Y
6 j4 z1 b0 a& N& o) X" r6 ~- e问题得到解决。
5 v8 J* d& \! `& s# ]! l& R) E* u$ B; z) l+ S
) ~2 P% W; O4 c2 J
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line8 Z: p3 M- A$ D0 I. N$ U. O, F
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));" s" E) k3 @4 x O9 ?
改为 :
- n2 J" c( l+ N$extsub=explode('.', $tmp);$tmp=end($extsub);+ c Z- |- @* T/ V# ^& R* @. M8 u& d S
9 C4 I U1 c ]" x" v. z: F6 m |
|