搜索
查看: 20391|回复: 0

[网站] ECShop网店系统V2.7.0正式版在php5.3下兼容问题

[复制链接]
发表于 2015-4-28 16:27:43 | 显示全部楼层 |阅读模式

. [* u0 K) P, Y! R 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 错误# U& ]  d/ ]! s$ ~. D1 S
  解决:找到install/includes/lib_installer.php中的第31行   return cls_image::gd_version();然后在找到include/cls_image.php中的678行,发现gd_version()方法未声明静态static,所以会出错。这时候只要:
- G2 d' ~# S8 }& F1 I2 L( R  1)将function gd_version()改成static function gd_version()即可。1 B: C1 i! S- Y, d; T& @3 M
  2)或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
. i) ~) x2 B( L5 X4 _3 n$p = new cls_image();# z% p6 K: J& S) [# G
return $p->gd_version();" p& `. s/ e9 {3 e1 @
* @. R! g: `" D2 A* E  o  F+ ^* [

& W7 R8 G1 P6 u( ^$ e1 E下载ECShop网店系统V2.7.0正式版,解压,上传后,安装进程进行到第3步:“配置系统”,点击“立即安装”后弹出“安装程序监视器”窗口,内容显示如下:7 s8 x. E1 ^/ F8 M
安装进程已中止
; Q+ @! H$ z: [4 _9 S创建配置文件............成功% b0 y. G: r9 Q8 o8 k; U4 n
创建数据库............成功4 S0 F; d/ J0 P: s% `* b4 X
安装数据............成功
/ s) W  `7 G# p, y# |! F( J; e创建管理员帐号............成功4 R  {3 r) Z) K- Z/ o0 l- [
处理其它............失败
* Z1 K- ?6 k( i, l( `
/ k+ w8 ^: ~; w/ Y/ U# dWarning: mkdir() [function.mkdir]: No such file or directory in /home4/skyrunne/public_html/7dbay/install/includes/lib_installer.php on line 528
$ |$ Z2 }3 p/ u' {无法创建目录,无法创建目录
7 T2 o* H: q9 n+ c9 a( c+ w5 z; ~解决方法如下:$ c( c7 Y' E4 S& T3 ?0 V1 l
点击“立即安装”前,不选择屏幕最下方的复选框安装测试数据: 9 H  P& n: j  R6 O
(选择此项,将默认全选预选商品类型) ,就可以顺利完成,反之就会出现如上的错误提示。
0 T+ f- |8 t; J% Q' v不安装测试数据库一样可用,一样正常,不是问题.....
" z: f9 i9 V9 Y愿看到此文章的朋友能解决问题;   _" p4 m$ _. u$ O/ g
" J* X: Y) y! L& \& F! `  f+ ?; ?
4 W+ o+ F* Z. ^1 }! m
ecshop如何解决includes\cls_template.php on line 418错误6 w9 D! s; n2 `: D

4 k1 L7 y, k9 n: k( I- ?之前遇到过的问题,一直很苦恼,到底该怎么解决,现在终于找到了解决的方法,现在分享给大家看下,问题如下所示:4 s6 x! j( L) |  n( n
Strict Standards: Only variables should be passed by reference in upload\includes\cls_template.php on line 418
7 \8 s- v" u, a. t' q第418行:$tag_sel = array_shift(explode(' ', $tag));& ^; g( [: x6 w2 f# Q4 l2 ?1 `, ~: Z' O
0 M8 u1 r. Z" y( A
解决办法 1:
2 q4 k5 P& f' A; }  ^# Q5.3以上版本的问题,应该也和配置有关 只要418行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode(' ', $tag)); 改成:
1 M" ^. o( T( m$ P1 Y' _   D+ a, _. |8 H7 F0 y# f+ `
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
+ R8 l& v" e; ]' Z# G(实验过,绝对可行) 因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值* z: @* C" F; _% s+ w9 Y* `* H
同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决
: q$ ]# @) w( m' `+ g 7 D; a% q' @8 }: T5 w
如:
* W+ i' q% p& H/ b! L, k% Bfunction get_dyna_libs($theme, $tmp)
4 S6 u5 D: v5 w0 S  l! {{- b: V% A6 G9 b2 e
$extsub = explode('.', $tmp);% I, J1 H# S+ z9 U7 q* j
$ext = end($extsub);
- B) p: \9 G, j8 E2 o! a$tmp = basename($tmp,".$ext");
! Z: |% i# A* S- J6 G$sql = 'SELECT region, library, sort_order, id, number, type' .
. _" c. A9 z( ?' FROM ' . $GLOBALS['ecs']->table('template') .
; n' S; E0 W3 \4 S" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".
! u8 K0 D9 _9 s* |' ORDER BY region, library, sort_order';
5 K* E. R; I, I9 u0 c, U0 O7 E$res = $GLOBALS['db']->getAll($sql);/ n" g# ^  `8 R! S* p. t& o" _- m
$dyna_libs = array();  F4 y0 I7 V3 H$ e( x5 j
foreach ($res AS $row). {5 @2 Y( v3 o& k; d# m# u
{
1 ?5 \- L9 I" W& M$dyna_libs[$row['region']][$row['library']][] = array(
2 `: ]$ u8 l3 v) O3 l9 E: p'id' => $row['id'],6 f/ y! \+ y( R( K" J
'number' => $row['number'],9 h# P' T  H. B+ U& P  S
'type' => $row['type']9 b+ K& H' B: `# _/ O+ n
);
8 {. l6 M: z- X5 ]+ F}
9 w0 I3 n. d: T3 f* K5 |- Hreturn $dyna_libs;
; B+ V. n4 d/ i/ B* A}
/ w$ j3 h& X, R( T4 h
: z0 D0 w+ p/ |  K7 |将$ext = end(explode('.', $tmp));
8 P4 j9 @) t3 Y+ |; G改为% a6 ?# L2 n* p: L- O2 u9 e: z
$extsub = explode('.', $tmp);* U$ M! T3 B1 _4 c  a  G
$ext = end($extsub);
( W$ f1 X6 t& ]7 m+ ?8 r9 E
2 t1 R# \! Y1 b! W1 @解决办法 2(屏蔽错误) :
1 Z: z* D6 N- \( N# _ - S0 E$ k- N; c  A% g) i
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
/ {, g% N# p2 J% p5 gphp.ini中有如下设置:
* u, q0 `0 W& f+ C% [. N0 Gerror_reporting = E_ALL | E_STRICT
- l* a- G# A' E) X
1 r* }& h& b) b* D0 J( c$ g: l这是说,显示那些不符合编码规范的警告(coding standards warnings)。
% U. R9 J  _$ |0 i5 }* RJoomla其实是建议取消error的输出,如果出于调试需要,应改为
3 \% S/ m9 _. C6 M8 ~! W5 c4 cerror_reporting = E_ALL & ~E_NOTICE
- e- A0 t* H% b 4 X6 Q" l( J( J$ k
问题得到解决。
- `0 c5 [9 x* B1 F/ o2 K) H. B" L8 }! N6 U8 C8 c1 N
5 F1 t7 U( s2 j3 W
Ecshop出现问题 includes\lib_main.php on line 1329 includes\lib_base.php on line
6 @% B0 i  A- t. K" l% _php 5.3版本兼容问题不少,以上函数参数传递问题可以将lib_main.php on line 1329这句 $ext = end(explode('.', $tmp));
  }# Y+ q3 J' u, i5 U: a改为 :' ~) j  d  ^9 Z" O# E! A; E
$extsub=explode('.', $tmp);$tmp=end($extsub);
, U5 k  x! W- T  G5 [% p) H' l/ b  N/ [/ H  Z5 ^6 Y+ [9 ?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

热议作品
精华帖子排行
精彩推荐

虾皮社区,成立十年了!

站长自己也搞不懂想做个什么,反正就是一直在努力的做!

Copyright © 2007-2019 xp6.org Powered by Discuz

QQ|Archiver|手机版|小黑屋|虾皮社区 鲁公网安备 37021102000261号 |网站地图
返回顶部 返回列表