|
|
7 o) l$ {8 K3 z+ _% w
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 错误
! v$ Q5 W1 w, g2 v 解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:/ L" Z& Q, a# v+ R
1)将function gd_version()改成static function gd_version()即可。
1 z3 E' F) x9 Z 2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:& o u8 G {3 x: m
$p = new cls_image();
# i- p+ l' \0 Breturn $p->gd_version();
( C+ I) } S8 ^& Q0 H8 L0 `( {2 n4 ?7 G" J0 [! L+ u2 F9 d
; s9 }4 Q) ^5 q E; B下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
6 Y/ M, A3 k9 a. ~安装进程已中止
3 G0 c$ {& J% s. D创建配置文件............成功, f% h0 f7 ~/ A$ ^9 U+ c
创建数据库............成功, N* \0 |6 P* @
安装数据............成功. m; k) }3 Y4 J- N; j0 L
创建管理员帐号............成功
! U0 ~; y; Y) H7 C5 Z: p处理其它............失败
3 d8 P. j% y$ u6 ^& ]' z+ j8 w* G& ^# x a) j
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
* Y' U3 T( `* h7 w4 R0 l1 P1 u+ M无法创建目录,无法创建目录
6 @" D: k/ w7 O6 J4 j- @. b解决方法如下:% U+ }0 t8 v( w+ E/ T" W. k
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据:
/ m0 z$ N3 O% h( ]6 C6 u2 ^ A$ z(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
' L5 N7 E3 ^' }# R不安装测试数据库一样可用,一样正常,不是问题.....3 M0 I( `+ B' ~
愿看到此文章的朋友能解决问题; " J( N; O: G" R! s) o
6 e( q. T4 i2 q; d/ |( P9 r
* _; r9 M) f% |* ]ecshop如何解决includes\cls_template.php on line 418错误* M& h2 I3 E% ?3 {6 Y3 P! v3 w
3 I6 r2 O6 o- b {3 L' P
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:
5 F' J; N9 }, _# H9 C5 h4 RStrict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 4187 j0 y; ^1 B+ s
第418行:$tag_sel = array_shift(explode(' ', $tag));- ~4 o! @: X0 A5 S
2 C: ~$ p/ S# [! K& V- {- W
解决办法 1:
# `+ U! x, q+ e X% A% x5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
( R( X; c+ w( p( q* `" U, W1 Q: W
& N, {5 U( X6 u, L# F2 W' g9 D% p$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
+ i/ K5 H& F, }! c V(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值$ X y( _9 X* ~3 c+ i
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
; g+ k# ]0 [- ?6 p
7 A7 K/ g& t; M4 _- q2 z: A如:
4 M, S! H0 f) M- }1 `2 l0 W' _" Hfunction get_dyna_libs($theme, $tmp)
k4 L, u, \9 _- p- U; Z) z{6 ]- e8 E2 |$ C+ S
$extsub = explode('.', $tmp);$ i8 j' \5 E8 D- s6 U0 ]# q
$ext = end($extsub);2 R& P, ]! J2 X6 q1 I7 t5 W
$tmp = basename($tmp,".$ext");
( |* X' A+ o+ N2 |) Q8 r+ M$sql = 'SELECT region, library, sort_order, id, number, type' .2 ]% T* c" g2 z& ]
' FROM ' . $GLOBALS['ecs']->table('template') .
' k- O2 }( F1 S+ q/ \: R _8 N" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
7 H( Y! C; u6 s( j* E% \9 `' ORDER BY region, library, sort_order';% o- g, Z7 o& E$ m7 C/ P
$res = $GLOBALS['db']->getAll($sql);# j: v! a: u; @* \$ V
$dyna_libs = array();
- `* _6 b. v' l6 c; v$ |5 Gforeach ($res AS $row)
/ P$ M/ F+ c) R* h0 [; n* n$ M{
* O6 r# r# |+ l) T( R$dyna_libs[$row['region']][$row['library']][] = array(1 x% g! ~& V1 ]; O0 P
'id' => $row['id'],
. R0 P7 S, }" G, k( E'number' => $row['number'],2 [9 d' a6 Z1 T. v
'type' => $row['type']
3 z/ C% C8 [# [2 S: c K7 o: z6 }4 J);
& {' x3 Z1 j3 R7 I/ Y}
3 O! @/ J7 l7 [: Creturn $dyna_libs;
" G; s, H7 B! k# ?}+ Q2 i! m+ Z& U0 A' u1 f! N
" m! d6 Y' \2 p8 S% p6 M6 o s% }将$ext = end(explode('.', $tmp));
7 ^/ q% Z! l( F改为
0 g; f' U" E' B4 q6 L$extsub = explode('.', $tmp);
9 F& {3 U' v1 k$ u. [) f$ext = end($extsub);3 C- c5 b5 G/ q# {
- Y, F/ d7 V# [& N
解决办法 2(屏蔽错误) :
* Y( \9 o6 W/ Z/ T/ J1 D5 ~; p 5 b+ |& F- w: e) _3 R6 A# _
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT3 D4 t2 w, @7 _: d. m0 b: a( ^
php.ini中有如下设置:
# P7 N" _1 ^" u2 ~6 ~. nerror_reporting = E_ALL | E_STRICT
0 u& Z0 ^! m( ?8 x & y H8 o- K- R$ {/ T9 _2 _3 G
这是说,显示那些不符合编码规范的警告(coding standards warnings)。 \ o5 o" o; p1 Y% G
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
9 N: z! ]9 w- B! F [" _" Herror_reporting = E_ALL & ~E_NOTICE
" G3 X; E) W8 E- Q* H1 v
8 J4 o, q: `, z5 I- D$ E问题得到解决。
: @' I1 e# @0 \ z/ T9 y9 H4 _# z- _- f
& q! l' {! P0 B) W
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line+ c5 g; G, ]1 ~5 ?2 g3 i- S0 N* \
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));9 f9 D2 T, p/ F9 Z9 g8 L
改为 :0 i' _* V' L o+ i+ J$ i/ P
$extsub=explode('.', $tmp);$tmp=end($extsub);
6 x# g3 N8 u( ~- \$ N- @4 N5 R0 U& s% E
|
|