ecshop错误大全.doc_第1页
ecshop错误大全.doc_第2页
ecshop错误大全.doc_第3页
ecshop错误大全.doc_第4页
ecshop错误大全.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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,现在这边又遇到了一个奇怪的问题,就是网站上的注册会员登录之后,在个别的地方个别的浏览器上会出现浏览了几个页面之后自动退出的现象。因为我在我这边测试一直没有捕抓到这个bug,是通过我们的一个客户发现的,然后反馈上来。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includesmodulesintegratesecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可以了。望尽快把这个bug给补上。/* 检查cookie* access public* param* return void*/function check_cookie ()if ( isset($_COOKIEECS) & isset($_COOKIEECSuser_id) & isset($_COOKIEECSpassword)$ecs_user_id = $_COOKIEECSuser_id;$ecs_user_pass = $_COOKIEECSpassword;$sql = SELECT . $this-field_name . AS user_name. FROM . $this-table($this-user_table) . WHERE .$this-field_id. = $ecs_user_id AND .$this-field_pass. = $ecs_user_pass;$username = $this-db-getOne($sql);if ($username & ($this-charset != UTF8)$username = ecs_iconv($this-charset, UTF8, $username);return $username;elsereturn ;七问题:出现错误代码:ECshop lib_base.php on line 1241 、Notice: Undefined variable: data in D:wwwrootKISSwwwrootincludeslib_base.php on line 1241Warning: require() function.require: Unable to access D:/wwwroot/KISS/wwwroot/languages/common.php in D:wwwrootKISSwwwrootincludesinit.php on line 124Warning: require(D:/wwwroot/KISS/wwwroot/languages/common.php) function.require: failed to open stream: No error in D:wwwrootKISSwwwrootincludesinit.php on line 124Fatal error: require() function.require: Failed opening required D:/wwwroot/KISS/wwwroot/languages/common.php (include_path=.;D:/wwwroot/KISS/wwwroot/) in D:wwwrootKISSwwwrootincludesinit.php on line 124解决办法:到temp文件夹下把static_caches文件下的文件都删除就可以了-八 问题:ECSHOP验证码前台或评论不显示,后台登录能显示针对ECSHOP验证码前台不显示,后台登陆显示,就排除了GD库没有安装的问题。查看GD库是否安装,请登录ECSHOP后台的起始页的系统信息,GD 版本:,例如我的就是 - GD 版本: GD2 ( JPEG GIF PNG)注释掉includesinit.php文件下的这段代码:3、以上方法若还不能解决问题,最后用原始的languageszh_cncommon.php覆盖,并把根目录下面的captcha.php里的空白行删除。可能原因:languageszh_cncommon.php 这个文件经过修改后,可能某个字符串太长或者其他原因导致验证码不显示。例如:将:$_LANGcopyright = 2005-%s %s 版权所有,并保留所有权利。;修改为:$_LANGcopyright = seo永夜;就可能导致验证码不显示。注释掉的意思是屏蔽要屏蔽的内容 前后加-九 问题 :定要改后台路径下面以 Ecshop 2.7.2 为例进行修改首先,修改后台目录名admin为你想要的,这里我设置为seoyy;其次,找到 data/config.php,修改这里的路径名为seoyy,define(ADMIN_PATH,seoyy) 。OK,在2.7.2版本里就已经修改完成,如果用低版本的需要改的文件太多,这里就不介绍了,建议升级到最新并打好补丁。-十 问题 Ecshop访问500错误提示是怎么回事,如何解决?出现500错误的原因是很多的,一般来说,如果程序出错,那么在浏览器内会返回给用户一个友好的错误提示,统一称之为服务器500错误。解决的方法就是您必须在http中能够正确的获得错误信息,方法为:请打开浏览器,选择工具,internet选项,高级,在高级中的浏览项目里面有一个显示http友好错误提示的复选框,请取消该复选框,并关掉窗口重新打开IE浏览器,这样您可以获得正确的错误提示。在获得正确的错误提示之后,您就可以根据该错误提示检查您具体的出错原因了,这类错误一般是数据库方面或者空间商的问题,可以咨询空间供应商。-十一 问题:Ecshop乱码二: 在DIV修改ECSHOP时,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论