|
|
8 g* r p: p+ k6 r( N 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 错误
! g1 ~% |3 |4 I$ z4 A: |4 p 解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:5 b+ B/ Q9 O5 I) Y5 P4 G' c
1)将function gd_version()改成static function gd_version()即可。 D3 q! j$ o, K/ ]5 ?: V) i
2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
. Y, l- i* T% _- d4 k$p = new cls_image();, @- g$ `1 j8 m5 ?
return $p->gd_version();/ P9 Z9 v$ [0 t
; Y: R* G w, s! @ h( J3 ?% A1 ~! i9 l+ {
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:
* _+ B" _$ Y. V& O& d8 }安装进程已中止
/ ^ H2 {" @9 E创建配置文件............成功: \% M" R. B L! Z4 ~
创建数据库............成功8 }! w' G1 b4 G& Q* t
安装数据............成功5 G8 V: n6 K3 R$ d$ ?% {
创建管理员帐号............成功
6 G( H) I, i% @& C8 L3 @1 R) L处理其它............失败/ R- _4 v4 ?( H/ H
; |& e$ B+ E% ~- N8 W
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
( H- @0 K% w* S/ [# M无法创建目录,无法创建目录8 V7 |+ z/ O/ Z
解决方法如下:
" L0 u& l' ]- W; G点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 0 t% F; K; R( y6 J2 \
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。& I' k6 y; k) h; B. K
不安装测试数据库一样可用,一样正常,不是问题.....
1 I1 w8 A$ B5 @* s4 w愿看到此文章的朋友能解决问题; . n5 S4 {, G0 |/ `
6 X- U: L: X" Y* \
& Z. g% @% N9 ?5 r. Q3 u
ecshop如何解决includes\cls_template.php on line 418错误
/ [6 G& N6 i* W6 H h$ }
! C R& u& m1 }0 c7 z( y之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:2 h( u- T, D2 c! ^) q! D( K! S0 ^
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418( e. T( {1 n% h- j* G% C- ]. }1 g
第418行:$tag_sel = array_shift(explode(' ', $tag));
' S- B2 T" U8 o
1 g& a0 K+ k5 R, t4 `' w+ R! Y解决办法 1:
% o; j5 O/ |5 F+ O4 @% `5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成: 4 z7 l3 Z/ q5 r
6 ~, M$ q' q% K a9 p4 a- O
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);: ~ ^9 p) C! N" P
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值$ K8 ^# r9 q* } y$ t* h5 n
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
7 P* _6 K" [" x) S
3 q$ F3 ]; Z% D, v1 R$ z6 F7 N如:7 i+ h9 H7 t! D
function get_dyna_libs($theme, $tmp)
6 [# I' G9 ]( ^1 B" p{/ X Q4 @3 x' y* u) e& S/ r
$extsub = explode('.', $tmp);, }# j; _: {( r1 |: U& ?4 g2 ^
$ext = end($extsub);0 {7 C' D! |# Z% V3 K
$tmp = basename($tmp,".$ext");
* o0 J' ^" d8 Z$sql = 'SELECT region, library, sort_order, id, number, type' .
( H3 Z A- d8 y/ U1 q' FROM ' . $GLOBALS['ecs']->table('template') .
- Q; I, T. j5 H* L# H+ E) y" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
# I2 ]' }1 H: f7 o& q. U! {' ORDER BY region, library, sort_order';
! i/ p; H4 e: X1 A9 B+ |$res = $GLOBALS['db']->getAll($sql);8 B: _- J: F0 X# Z
$dyna_libs = array();
, W9 M" g0 j% a8 J4 vforeach ($res AS $row)
3 v, `, A3 e, f$ g9 s' U6 |{
- r' U/ b" l5 ~$dyna_libs[$row['region']][$row['library']][] = array(+ z" O" p% ^) W% H# P$ y
'id' => $row['id'],
( W" P2 P: V. T; a( |" X'number' => $row['number'], {9 v/ t3 e) N( }5 g& w, }
'type' => $row['type']
; S4 b% `7 F/ F& z/ n1 U);" l& w% v$ I1 I6 S8 p2 n! E
}
/ }4 T+ z7 n4 s. D- x1 p* d- j, rreturn $dyna_libs;* W, F* s$ b# ~
}7 Y% x- e$ W5 G1 W7 s8 o" o
- o2 p6 F8 N& F) e( \将$ext = end(explode('.', $tmp));
* x, t; F8 ]2 b. d A改为
" ^& P' A/ ~% d/ x+ p. i+ d* f* {$extsub = explode('.', $tmp);
k3 ?7 \" z. Y$ ?/ L0 C* v8 B$ext = end($extsub);8 k& Y# z {/ s
/ l! l- H7 _ ]% h( Y
解决办法 2(屏蔽错误) :, S& c- ?& T; H2 B |. J2 q
7 @+ x3 l) z. {或则如果这样配置的话: error_reporting = E_ALL | E_STRICT9 e5 g7 U) N/ J: ?
php.ini中有如下设置:
' n. |5 n7 K0 werror_reporting = E_ALL | E_STRICT, p% o: ]1 j9 \- D* C
: t/ R+ Q: p6 H& y* O这是说,显示那些不符合编码规范的警告(coding standards warnings)。* U u$ g. C( r' j+ `6 O
Joomla其实是建议取消error的输出,如果出于调试需要,应改为, ^' \* ~8 O G( u' X% U- A `# k
error_reporting = E_ALL & ~E_NOTICE
, f+ A* S: j% b1 k% y% C$ P' u
2 `) j/ h# Y" _# y# ~问题得到解决。
! o) j/ Q U3 A; x. G) H4 i2 }
% o) }5 P' g" e2 I% d) m9 H) a6 W
: f! p& L3 D9 k0 I# v1 v2 sEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line$ P6 E: d' K7 Q$ b0 i# i
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));# l2 T( C+ w6 W, Q: h5 _4 q
改为 :* `* D$ k! u+ ?" {9 Y$ M3 [
$extsub=explode('.', $tmp);$tmp=end($extsub);- A( N, e. O! N7 O* n' e
# B4 j E* N- c& O: e" j. [ |
|