资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
ecshop 错误大全概要:本文针对于对 ecshop 接触时间不久的同事制作Maximum execution time of 30 seconds exceeded(30 秒运行超时的错误。 )提示解答:修改 php 执行文件加上set_time_limit(0);?“0”为永不过时,也可设置为其他时间。二 安装 Ecshop 首页出现报错常见的问题解决办法(在网上看到整理的)安装 Ecshop 首页出现报错: Only variables should be passed by referen最近想安装一个 ECSHOP 商城上去,老是报错,出现下面这就话:Strict Standards: Only variables should be passed by reference in D:*includescls_template.php on line 406 第 406 行: $tag_sel = array_shift(explode( , $tag);解决办法 1 5.3 以上版本的问题,应该也和配置有关 只要 406 行把这一句拆成两句就没有问题了$tag_sel = array_shift(explode( , $tag);改成:$tag_arr = explode( , $tag);$tag_sel = array_shift($tag_arr);(实验过,绝对可行) 因为 array_shift 的参数是引用传递的,5.3 以上默认只能传递具体的变量,而不能通过函数返回值 解决办法 修改完了要记得清理缓存。2 :或则如果这样配置的话: error_reporting = E_ALL | E_STRICT 估计也可( 未测试过,实验中)修改完上面这个问题之后,可能还会出现下面这个问题:Strict Standards: Non-static method cls_image:gd_version() should not be called statically in D:*XXecshopshiincludeslib_main.php on line 1316经过查询includeslib_main.php 文件的 1316 行发现,还是同样的问题:/$ext = end(explode(., $tmp);我们把上面这句拆分为下面这三句:$ext = end(); $ar = explode(., $tmp);$ext = end($ar);就正常了(亲自测试过的,没问题)$tmp = basename($tmp,.$ext);如果主机的 GD 库不存在或者版本不同还有可能出现下面这句错误提示:Strict Standards: Non-static method cls_image:gd_version() should not be called statically in D:*Xincludeslib_base.php on line 346直接找到“includeslib_base.php” 文件的 346 行左右,将这句:/return cls_image:gd_version();注释掉就可以了,当然,如果你的程序需要 GD 库支持,那就要咨询下服务器空间商了,只作简要说明Strict Standards: Only variables should be passed by reference in uploadincludescls_template.php on line 418第 418 行:$tag_sel = array_shift(explode( , $tag);解决办法 1 ():5.3 以上版本的问题,应该也和配置有关 只要 418 行把这一句拆成两句就没有问题了 $tag_sel = array_shift(explode( , $tag); 改成: $tag_arr = explode( , $tag);$tag_sel = array_shift($tag_arr);(实验过,绝对可行) 因为 array_shift 的参数是引用传递的,5.3 以上默认只能传递具体的变量,而不能通过函数返回值同理举一反三:遇到函数嵌套错误时可以分开写,错误自然解决如:function get_dyna_libs($theme, $tmp)$extsub = explode(., $tmp);$ext = end($extsub);$tmp = basename($tmp,.$ext);$sql = SELECT region, library, sort_order, id, number, type . FROM . $GLOBALSecs-table(template) . WHERE theme = $theme AND filename = . $tmp . AND type 0 AND remarks=. ORDER BY region, library, sort_order;$res = $GLOBALSdb-getAll($sql);$dyna_libs = array();foreach ($res AS $row)$dyna_libs$rowregion$rowlibrary = array(id = $rowid,number = $rownumber,type = $rowtype);return $dyna_libs;将$ext = end(explode(., $tmp);改为$extsub = explode(., $tmp);$ext = end($extsub);解决办法 2(屏蔽错误) :或则如果这样配置的话: error_reporting = E_ALL | E_STRICTphp.ini 中有如下设置:error_reporting = E_ALL | E_STRICT这是说,显示那些不符合编码规范的警告(coding standards warnings) 。Joomla 其实是建议取消 error 的输出,如果出于调试需要,应改为error_reporting = E_ALL & E_NOTICE问题得到解决。四.Strict Standards: Non-static method cls_image:gd_version() should not be called statically in includeslib_base.php on line 346解决办法一:屏蔽错误首先检查 php.ini 中 extension=php_gd2.dll 注释是否去掉如果还有问题 查找 error_reporting = E_ALL 修改成 error_reporting = 0D:workspaceecshopincludes 下的 init.php 文件 修改ini_set(display_errors, 1); 把 1 修改成零D:workspaceecshopadminincludes 下的 init.php 文件 修改ini_set(display_errors, 1); 把 1 修改成零解决办法二:根源上解决错误第一个提示的意思是 cls_image 类里面的 gd_version 函数不是静态方法,不能用cls_image:gd_version 调用。这个和 gd 库没有一点关系,是 ecshop 程序的问题。找到 includeslib_base.php 错误行function gd_version()include_once(ROOT_PATH . includes/cls_image.php);$cls_imageargs=new cls_image();/return cls_image:gd_version();这里使用了静态调用return $cls_imageargs-gd_version();/恢复动态调用将第 64 行$smarty-assign(sql_name, cls_sql_dump:get_random_name() . .sql);改为$cls_sql_dumpsub=new cls_sql_dump();$smarty-assign(sql_name, $cls_sql_dumpsub-get_random_name() . .sql);Strict Standards: Redefining already defined constructor for class cls_sql_dump in D:WWWecshopadminincludescls_sql_dump.php on line 90此问题主要是 php4 与 php5 版本引起的/* 类的构造函数* access public* param* return void*/function cls_sql_dump(&$db, $max_size=0)$this-db = &$db;if ($max_size 0 )$this-max_size = $max_size;/* 类的构造函数* access public* param* return void*/function _construct(&$db, $max_size =0)$this-cls_sql_dump($db, $max_size);改为/* 类的构造函数* access public* param* return void*/function _construct(&$db, $max_size =0)$this-cls_sql_dump($db, $max_size);/* 类的构造函数* access public* param* return void*/function cls_sql_dump(&$db, $max_size=0)$this-db = &$db;if ($max_size 0 )$this-max_size = $max_size;五、ECshop 后台显示 Deprecated: Assigning the return value of new by reference is deprecated in admingoods_batch.php on line 921公司接了个做网店的项目,用 ECshop 开发,装在 window7 下,后台管理出现了( ! ) Deprecated: Assigning the return value of new by reference is deprecated in F:wampwwwECshopadmingoods_batch.php on line 921这个错误,网上搜了好长时间,找到答案了只要把 admin 目录下的 goods_batch.php 文件的 921 行$filter = &new stdclass;new 前边的& 去掉就 ok 了,是不是很简单?$filter = new stdclass;六、会员自动退出漏洞ecshop 使用就了就会发现越来越多的 bug,现在这边又遇到了一个奇怪的问题,就是网站上的注册会员登录之后,在个别的地方个别的浏览器上会出现浏览了几个页面之后自动退出的现象。因为我在我这边测试一直没有捕
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号