|
|
9 C* j5 ]; z9 O1 F! g* s5 O 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 错误
5 I) s8 Z* L7 f8 v2 B 解决:找到install/includes/lib_installer.php中的第31行 return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:1 \ E4 ] A# H
1)将function gd_version()改成static function gd_version()即可。
1 ]7 B% ^$ ~1 M! k* ?: y( | 2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
7 [5 C2 j4 [# I$p = new cls_image();: Y1 f2 o$ [' X2 r; e
return $p->gd_version();
, F- o2 b- n/ m# S! J z' n% ?( A( G; i$ z2 o D
' Q l! \ b! K7 l* l" `下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:' @, ~$ ] |% r7 }$ M. W; _/ h1 X, f w$ K
安装进程已中止
& `2 K9 f# u- ~- K创建配置文件............成功
) r% L% {$ Y, |# [4 n创建数据库............成功+ N& G* [+ I! P% j
安装数据............成功7 ]4 B) {, {. r6 r
创建管理员帐号............成功/ C$ W2 G+ i0 R& z7 W/ \: F. e: d
处理其它............失败
9 J: `' G) b6 e6 @' Q- j% t, q; q5 e
/ P( y/ I5 g+ P z5 L: {Warning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
$ N- a" ?( u" N( ~无法创建目录,无法创建目录8 c( |8 R9 b0 l+ @9 m
解决方法如下:, a1 k5 D/ |" [
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: ; h! U: J( q0 b' U$ N
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。, b! B4 ^2 y: B/ o' F
不安装测试数据库一样可用,一样正常,不是问题.....
& }9 E9 {. y8 {5 y愿看到此文章的朋友能解决问题; 5 J6 e% ~( o+ e* s6 Y
# ~- E, j; w! `+ p
& n7 m1 \( y9 _- I0 R0 a
ecshop如何解决includes\cls_template.php on line 418错误+ k' }2 |" p1 {9 ~7 m
3 X7 Y% L/ ~+ _8 r
之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:% u% I: t: i2 s2 ~, H, p7 b
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418" \4 A! O6 v- [4 H% r" X9 M
第418行:$tag_sel = array_shift(explode(' ', $tag));6 y6 t j# d0 y' G( ~4 \
0 l( ]: X& m: Q( \! b* j% ]解决办法 1:
8 {& c: K& S5 B2 i- a! f: M5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
2 Y1 ], n7 o& A; i* ? % O$ e& K: j: o3 g0 D/ Y* o# i5 o
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);( N6 j5 h% [9 ?+ x, e
(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
3 H9 n, U! h" K3 i8 {& U同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决6 r$ K) r: H) @& W2 x. {
! n) V+ D& k8 }# B+ w. j8 i5 g如:
# m# B( @0 I! [8 {1 @0 Lfunction get_dyna_libs($theme, $tmp): B7 e! H& K) Z! ]9 C+ G
{+ }8 B! G9 y5 V/ ]: R9 |. ~/ |
$extsub = explode('.', $tmp);. w1 f8 m4 A% W ~1 k1 S
$ext = end($extsub);- N: {2 p+ N' a
$tmp = basename($tmp,".$ext");
8 A( t3 G2 Z* y' j% m# ^5 {$sql = 'SELECT region, library, sort_order, id, number, type' .) K+ O+ U$ o0 u6 Z. U6 l. v
' FROM ' . $GLOBALS['ecs']->table('template') .
# I$ r; O, v- S" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
" N1 c( j: u; n5 [' q' ORDER BY region, library, sort_order';% Z' C# n, I$ a4 C2 g4 K0 j& X
$res = $GLOBALS['db']->getAll($sql);! p; e2 ~6 `7 \$ q ?( F
$dyna_libs = array();4 F9 k7 Q& }4 J4 W
foreach ($res AS $row)
0 o" x) g0 J# B/ ~. z{
! ]7 H/ D* M. P# M: O$dyna_libs[$row['region']][$row['library']][] = array(
" W7 j/ F5 C, e0 ~: V2 x# A'id' => $row['id'],
- d" o( {2 A6 W4 w% F: O'number' => $row['number'],; T' d4 c, i: t% |
'type' => $row['type']5 g0 Y4 r+ ^$ F" o% Y1 \
);
, V" Y& f/ ]- G) d$ `" ^}
; R0 _8 F; t" W& L5 ^return $dyna_libs;- J) a) E- `* {0 z
}* k7 j( H1 Z, l, v. x' |$ ]' @' {
8 Y! v. T/ g7 X2 s9 _ X
将$ext = end(explode('.', $tmp));
8 W+ ]' D" ], S; R* r+ G) H改为
; Q9 l& K) e* C2 a6 e: w$extsub = explode('.', $tmp);
% F- [4 A0 J' C$ext = end($extsub);3 N+ Y* ?, B& C0 [* r3 ^
/ ~- o5 @1 |( {2 ~3 E9 n! y Z( {
解决办法 2(屏蔽错误) :8 R( {, v- h# Q3 P, E
+ M1 A3 \( b4 y( o" O
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT8 p8 b7 G2 d7 V8 z+ r
php.ini中有如下设置:
" B! ` d* j$ P X, m; X+ Q9 ~error_reporting = E_ALL | E_STRICT
0 q3 ^$ Y% Q$ q2 U$ c3 p8 p, o5 s, ^ 3 r( G; g1 C" [ i
这是说,显示那些不符合编码规范的警告(coding standards warnings)。$ M! H/ `9 x# L% X+ U: v5 q1 o0 f
Joomla其实是建议取消error的输出,如果出于调试需要,应改为
( ]: S# ?& [* eerror_reporting = E_ALL & ~E_NOTICE
( p, a8 q/ }6 H# B+ T2 | : y0 i% ]* }- N2 l: A3 R
问题得到解决。
, J6 t/ _: U: [3 a
$ X% S4 ?: |* r
0 H) h3 c" l" O0 _* f4 s' ~2 jEcshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
0 G! n9 ~3 Y. `% lphp 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));0 ?, S( [$ @ a4 f
改为 :
0 p4 w2 M* g2 ^) [$extsub=explode('.', $tmp);$tmp=end($extsub);1 W! m" @4 o3 ?& z3 @# i
' M1 F% r) o" \4 ]) |# I6 s( B5 I |
|