|
|
. C* B$ ?1 H+ Y7 O& u0 L 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 错误+ w# E; g+ ^ J# |
解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:. N* q8 Y) M! T
1)将function gd_version()改成static function gd_version()即可。
1 c; a; z" M9 J& d5 D3 p 2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
# x- E9 C4 t7 d+ ]6 f( b/ x$p = new cls_image();4 J& y5 U4 F0 u
return $p->gd_version();8 O0 G5 L1 A9 A7 M; X! H
* O. G) a1 I1 \4 \$ i: t& o) s7 T9 p
下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:$ a6 D5 z' O3 C8 P) v
安装进程已中止* M% H0 }0 h- U4 K
创建配置文件............成功+ K/ m, f2 u( h+ [7 w
创建数据库............成功
& H$ j5 F n V安装数据............成功
4 |6 k& s- k6 c5 ^; W创建管理员帐号............成功
) A- k, g9 x" z" f8 |2 ?7 v处理其它............失败
9 {. V! k: w; ^% \5 V' \% S/ `# x( Y Q- N2 j! j$ [
Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
! T4 H' ]! V3 W: Z# ~# c) n无法创建目录,无法创建目录: ?# R! |+ P' d
解决方法如下:
6 M7 s( B& }) B3 `) F+ F% O% G6 G点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 3 Q u/ E! E. n' x8 y
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
* u7 r$ |! L, E4 j不安装测试数据库一样可用,一样正常,不是问题.....
: C; |4 v; |( f& R愿看到此文章的朋友能解决问题; . a: n2 Q, i- |7 g4 J( R
( ^2 r5 b9 N4 N0 A7 J- x' S* r
1 c- u# v9 b9 }0 I# a! hecshop如何解决includes\cls_template.php on line 418错误: L7 u4 {/ g3 h: M7 n) L5 |
9 S$ t: ?) K" v5 b- _之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示: O. S2 g3 w$ g) e+ d2 a
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418% T/ `/ f7 l+ s
第418行:$tag_sel = array_shift(explode(' ', $tag));
6 b! l; I- v& _5 V7 I" n0 G& B & K+ K$ [' U4 X p/ {
解决办法 1:# g c% j, p/ J4 ~9 X
5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
) a. L5 z, Z# y# S" @- H, q * _! h/ g1 `( e b6 A
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);$ K$ c! b* c8 a; x- }
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
9 e6 E/ t8 \- L* a1 J# c1 E7 j& o同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决) ?2 O6 F* Y$ ?8 J
& D9 H% D+ k' l" |9 z7 ^
如:
5 x; P. c, a! Z) ]5 k9 `% Gfunction get_dyna_libs($theme, $tmp)
& ?; l$ v1 o% d4 |{& P v! h; O* p- q4 H
$extsub = explode('.', $tmp);
0 v: Q8 k2 x( g$ext = end($extsub);- }5 w& D+ l5 N
$tmp = basename($tmp,".$ext");
, {2 U: ?7 B8 H; p+ Q: b$sql = 'SELECT region, library, sort_order, id, number, type' .
& E$ G9 _7 n4 M3 J* A6 E$ C9 Q8 [' FROM ' . $GLOBALS['ecs']->table('template') .. T* Q4 s" r: F
" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
$ [4 u3 c% d3 V1 x+ _2 \% L' ORDER BY region, library, sort_order';# r/ ~) Q9 N! \2 X i
$res = $GLOBALS['db']->getAll($sql);- ~6 V$ B$ }5 H4 b& Z# ]5 f
$dyna_libs = array();2 [( r y. F! {3 U+ F" A' p+ z
foreach ($res AS $row): q7 n6 D! w* z7 R' d- }3 {
{
5 j! P& f: s; E5 |$ K9 @5 x$dyna_libs[$row['region']][$row['library']][] = array(5 }& R6 d8 d8 \8 A {- N8 j
'id' => $row['id']," s- l* R1 I8 V& Z3 ?% u7 i
'number' => $row['number'],
& T# T. F# D- i+ K' l; J. h' x3 F$ M7 x'type' => $row['type']
, j; |. K6 z! e! p! {; ?5 y" I; H5 I);
5 C9 a/ Y- P+ A! ?% R4 `6 s t}# G, J3 S1 X! k+ J6 L8 C
return $dyna_libs;8 Y% R& K3 u2 C( Q7 V* c
}
+ K5 u- i# s$ X4 X
3 i" E& _- g! P$ o( J* G将$ext = end(explode('.', $tmp));
8 I- [# {' K# p6 {/ ^& f1 N- A4 q$ N改为 Z4 {* a, |* \; L" ?5 Z
$extsub = explode('.', $tmp);
2 s4 q* Z" N1 p" v( c/ s$ext = end($extsub);- U% O1 _+ W2 O; G. j! C, K8 k
0 v" `' J+ S1 s) }解决办法 2(屏蔽错误) :
2 Z1 p9 i& y7 N0 M$ _1 I
" e9 P- q1 b* h1 N* |' _( H) u" C或则如果这样配置的话: error_reporting = E_ALL | E_STRICT/ l9 A) }- z2 N- ]# [6 v% b# R; q
php.ini中有如下设置:: G- b$ A5 G- ]! }, b0 v+ Q
error_reporting = E_ALL | E_STRICT
$ r3 m* @3 d8 O& L# Q7 X $ O6 O+ E( |3 h' }, j' G
这是说,显示那些不符合编码规范的警告(coding standards warnings)。8 K# ?6 f, q" u' A. `
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
, p- G, }4 V- e2 v0 B$ Ferror_reporting = E_ALL & ~E_NOTICE8 r6 S* l5 ]3 K% V: d- d
' T# }3 N: I% X. ?9 D
问题得到解决。- d6 s7 Y7 V; p2 o- w* I
' q! V* B& E& J5 ]
& a n: k# e2 V, Q C/ ~* XEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line* k" {' |3 R. [. M
php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));* @7 |- z8 a! t, u% X" J* n
改为 :
+ A: C& g3 k& q1 B" s$extsub=explode('.', $tmp);$tmp=end($extsub);: W4 L5 O' Q2 R& ]
4 ^0 V1 N2 k) v4 g |
|