ecshop错误大全

ecshop错误大全
ecshop错误大全

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:\**\includes\cls_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:\**XX\ecshopshi\includes\lib_main.php on line 1316

经过查询"includes\lib_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:\**X\includes\lib_base.php on line 346

直接找到“includes\lib_base.php”文件的346行左右,将这句:

//return cls_image::gd_version();

注释掉就可以了,当然,如果你的程序需要GD库支持,那就要咨询下服务器空间商了,只作简要说明

Strict Standards: Only variables should be passed by reference in

upload\includes\cls_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 ' . $GLOBALS['ecs']->table('template') .

" WHERE theme = '$theme' AND filename = '" . $tmp . "' AND type > 0 AND remarks=''".

' ORDER BY region, library, sort_order';

$res = $GLOBALS['db']->getAll($sql);

$dyna_libs = array();

foreach ($res AS $row)

{

$dyna_libs[$row['region']][$row['library']][] = array(

'id' => $row['id'],

'number' => $row['number'],

'type' => $row['type']

);

}

return $dyna_libs;

}

将$ext = end(explode('.', $tmp));

改为

$extsub = explode('.', $tmp);

$ext = end($extsub);

解决办法2(屏蔽错误):

或则如果这样配置的话:error_reporting = E_ALL | E_STRICT

php.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 includes\lib_base.php on line 346

解决办法一:屏蔽错误

首先检查php.ini 中extension=php_gd2.dll 注释是否去掉

如果还有问题查找error_reporting = E_ALL 修改成error_reporting = 0

D:\workspace\ecshop\includes 下的init.php文件修改@ini_set('display_errors', 1); 把1修改成零

D:\workspace\ecshop\admin\includes下的init.php文件修改

@ini_set('display_errors', 1); 把1修改成零

解决办法二:根源上解决错误

第一个提示的意思是cls_image类里面的gd_version函数不是静态方法,不能用cls_image::gd_version调用。这个和gd库没有一点关系,是ecshop程序的问题。找到includes\lib_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:\WWW\ecshop\admin\includes\cls_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 admin\goods_batch.php on line 921

公司接了个做网店的项目,用ECshop开发,装在window7下,后台管理出现了( ! ) Deprecated: Assigning the return value of new by reference is deprecated in

F:\wamp\www\ECshop\admin\goods_batch.php on line 921

这个错误,网上搜了好长时间,找到答案了

只要把admin目录下的goods_batch.php文件的921行

$filter = &new stdclass;

new前边的&去掉就ok了,是不是很简单???

$filter = new stdclass;

六、会员自动退出漏洞

ecshop使用就了就会发现越来越多的bug,现在这边又遇到了一个奇怪的问题,就是网站上的注册会员登录之后,在个别的地方个别的浏览器上会出现浏览了几个页面之后自动退出的现象。因为我在我这边测试一直没有捕抓到这个bug,是通过我们的一个客户发现的,然后反馈上来。

会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。

进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可以了。望尽快把这个bug给补上。

/**

* 检查cookie

*

* @access public

* @param

*

* @return void

*/

function check_cookie ()

{

if ( isset($_COOKIE['ECS']) && isset($_COOKIE['ECS']['user_id']) &&

isset($_COOKIE['ECS']['password']))

{

$ecs_user_id = $_COOKIE['ECS']['user_id'];

$ecs_user_pass = $_COOKIE['ECS']['password'];

$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;

}

else

{

return '';

}

}

七.问题:出现错误代码:ECshop lib_base.php on line 1241 、

Notice: Undefined variable: data in

D:\wwwroot\KISS\wwwroot\includes\lib_base.php on line 1241

Warning: require() [function.require]: Unable to access

D:/wwwroot/KISS/wwwroot/languages//common.php in

D:\wwwroot\KISS\wwwroot\includes\init.php on line 124

Warning: require(D:/wwwroot/KISS/wwwroot/languages//common.php) [function.require]: failed to open stream: No error in

D:\wwwroot\KISS\wwwroot\includes\init.php on line 124

Fatal error: require() [function.require]: Failed opening required

'D:/wwwroot/KISS/wwwroot/languages//common.php'

(include_path='.;D:/wwwroot/KISS/wwwroot/') in

D:\wwwroot\KISS\wwwroot\includes\init.php on line 124

解决办法:到temp文件夹下把static_caches文件下的文件都删除就可以了

----------------------------------------------------------------------------------------------------------------------

八问题:ECSHOP验证码前台或评论不显示,后台登录能显示

针对ECSHOP验证码前台不显示,后台登陆显示,就排除了GD库没有安装的问题。

查看GD库是否安装,请登录ECSHOP后台的起始页的系统信息,GD 版本:,例如我的就是---- GD 版本:GD2 ( JPEG GIF PNG)

注释掉includes\init.php文件下的这段代码:

3、以上方法若还不能解决问题,最后用原始的languages\zh_cn\common.php覆盖,并把根目录下面的captcha.php里的空白行删除。

可能原因:languages\zh_cn\common.php 这个文件经过修改后,可能某个字符串太长或者其他原因导致验证码不显示。

例如:

将:$_LANG['copyright'] = "? 2005-%s %s 版权所有,并保留所有权利。";

修改为:$_LANG['copyright'] = "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时,有时会需要在数据库中加入一些字段,可能在存储过程中会遇到乱码问题,

答案:问题出在ECSHOP在把资料放进数据库时, 经过了htmlentities的处

理, 防止javascriptr的恶意输入,

文件位于/includes/lib_passport.php第165行:

原代码: $other[$key] = htmlentities($val); //防止用户输入javascript代码

只要把htmlentities换成htmlspecialchars就OK 了

$other[$key] = htmlspecialchars($val); //防止用户输入javascript代码

另一个文件位于/includes/lib_transaction.php第85行:

原代码:$profile['other'][$key] = htmlentities($val); //防止用户输入javascript代码

修改后的代码为:

$profile['other'][$key] = htmlspecialchars($val); //防止用户输入javascript代码

----------------------------------------------------------------------------------------------------------------------------

十二问题:如何添加自定义lbi文件

下面以ECSHOP 2.7.2为例,添加自定义的lbi文件……

1.找到admin下面includes\lib_template.php 找到

$page_libs = array( 这里…. 给您需要的页面加上你自己的seoyy.lbi

2.找到languages 下面的zh_cn\admin\template.php 添加

$_LANG['template_libs']['seoyy'] = …我的seoyy?;

3. 在themes\模板文件夹下面的libs.xml 修改, 加上/labrary/seoyy.lbi

4. 在labrary 加上seoyy.lbi

这样就OK了。

本文有部分是在网上摘选下来的

二次开发基础知识:Ecshop

基础知识 一、文件夹功能说明 1、根目录:前台程序文件 2、admin:后台程序文件夹 –根目录:后台程序文件*.php文件 –help\zh_cn:各功能的帮助文件*.xml文件 –images:后台页面用图片 –includes:后台公用文件和函数 –js:后台用js脚本 –styles:后台用样式表 –templates:后台页面模板*.htm文件 3、api:调用API的系统公用函数 4、cert:存放证书的文件夹 5、data:数据连接设置等,包括各种广告的上传图片等 –afficheimg:首页flash广告图片 –brandlogo:品牌logo 6、images:上传商品图片文件夹,按日期分目录 –200902:按月份划分商品图片 –upload:上传文件夹,包括file、flash、image和media 7、includes:前台公用文件和函数 –codetable:语言对应的代码表 –fckeditor:开源html文本编辑器 –modules\convert:shopex转换文件 –modules\cron:如自动上下架、ip删除等函数 –modules\integrates:整合各种插件和函数基础类 –modules\payment:各种支付接口插件 –modules\shipping:各种送货方式插件 8、install:系统安装文件夹,用后请删除 9、js:前台用js脚本 –calendar:日历控件 10、languages:语言文件 –zh_cn:简体中文语言文件,存储简体中文下使用的函数变量等–zh_tw:繁体中文语言文件,存储繁体中文下使用的函数变量等 11、temp:存放临时缓存等文件 12、themes:模板文件夹,可以随意拷贝模板样式 13、wap:手机浏览程序 –includes;公用文件和函数 –templates:页面模板*.wml文件 14、widget:搜狐博客小插件 二、主要文件功能说明 模板文件说明 style.css –模板所使用样式表 activity.dwt –活动列表 article.dwt –文章内容页

完美解决ecshop模板属性价格改为直接价格而不是加的价格的问题

ecshop属性价格改为直接价格而不是加的价格的完美解决方案 (附价格项其他美化方法) 网上的ecshop属性价格改为直接价格而不是加的价格的解决方案如下: 打开文件,查找代码includes/lib_common.php function get_final_price中 //如果需要加入规格价格 if ($is_spec_price) { if (!empty($spec)) { $spec_price = spec_price($spec); $final_price += $spec_price; } } 将此处的$final_price += $spec_price;的+号去掉 按照此方法改了,有个很大的bug,那就是其他没有添加属性的商品价格都为0了,我们的解决方案是修改成如下: if ($is_spec_price) { if (!empty($spec)) { $spec_price = spec_price($spec); if($spec_price!=0) $final_price = $spec_price; } }

要改成想京东淘宝那样,直接点击所属属性就显示其相应价格,而且后面不显示加**字样,方法如下: 1.先改商品价格随属性变动而变动 在你所在模板目录下的goods.dwt文件中找到价格那块的字段,找到价格前面的id,找到之后,在goods.dwt文件最底部复制下图画框上面一段,然后在下面粘贴一下,把上面价格里的id改到这块即可。 此图就是修改后的效果。 2.干掉加**字样 同样在该goods.dwt页,搜索{$https://www.360docs.net/doc/5f11910159.html,bel} [{if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if} {$value.format_price|abs}] 替换成{$https://www.360docs.net/doc/5f11910159.html,bel} {if $value.price gt 0}{elseif $value.price lt 0}{/if} 记得是全替换,大概有二三处,其实直接删掉也没问题的哦 3.最终效果如图

ecshop目录结构图

适用所有ecshop版本模板的放大镜(含小图切换大图效果)

【1】.先下载 mzp.packed.js 下载地址:https://www.360docs.net/doc/5f11910159.html,/static/magiczoomplus-demo.zip 【2】.在模板中引入 mzp.packed.js 文件 有2种方式来引入 第一种方式:把mzp.packed.js 放到 ec根目录 js目录下面 这样在goods.dwt文件里面添加一行: 1.{insert_scripts files='common.js,mzp-packed.js'} 复制代码 第二种方式:把mzp.packed.js放到模板文件夹里面的js目录下 这样在goods.dwt里面添加一行: 1. 复制代码 如果很多朋友发现没有效果那检查下是否成功的加载了js代码 【3】在goods.dwt里面添加如下代码:我们以ecshop2.70 default模板为准其他模板依此类推 1. 2. 3. {$goods.goods_name|escape:html} 4. 5. 6. 7. {$goods.goods_name|escape:html} 8. 9. 复制代码 【4】找到库文件 goods_gallery.lbi 改为如下

ecshop模板结构说明及标签(二次开发使用)

ECSHOP 模板结构说明(适用版本v2.1.5+) 名称类型备注(作用或意义)文件(目录)名可否更改images 目录存放模板图片目录不可更改 library 目录存放模板库文件目录不可更改 screenshot.png 图片用于“后台管理-> 模板管理-> 模板选择”显示 模板缩略图。 不可更改 style.css css样式表不可更改 备注:模板文件共32个(格式:.dwt)。 提醒: 1, 更改模板文件里面库文件的内容是无效的,页面刷新时,程序自动重新载入库文件内容到模板文件里(以库文件内容为准)。 2, 模板内所有id值为ECS_ 开头的都必须保留(和ajax相关)。 3, 非库文件内容不可放置到可编辑区域内,否则设置模板时,非库文件内容将被覆盖删除。 activity.dwt 模板文件活动列表页不可更改 article.dwt 模板文件文章内容页不可更改 article_cat.dwt 模板文件文章列表页不可更改 article_pro.dwt 模板文件文章内容页(如免责声明等) 不可更改 auction.dwt 模板文件拍卖商品详情页不可更改 auction_list.dwt 模板文件拍卖商品页不可更改 brand.dwt 模板文件商品品牌页不可更改 brand_list.dwt 模板文件商品品牌列表页不可更改 catalog.dwt 模板文件所有分类页不可更改 category.dwt 模板文件商品列表页不可更改 compare.dwt 模板文件商品比较页不可更改 flow.dwt 模板文件购物车和购物流程页不可更改 gallery.dwt 模板文件商品相册页不可更改 goods.dwt 模板文件商品详情页不可更改 group_buy_goods.dwt 模板文件团购商品详情页不可更改 group_buy_list.dwt 模板文件团购商品列表页不可更改 index.dwt 模板文件首页不可更改message.dwt 模板文件信息提示页不可更改 message_board.dwt 模板文件留言板页不可更改 myship.dwt 模板文件我的配送页不可更改

ecshop数据表说明

Ecshop数据库表说明 ECSHOP开发中心(https://www.360docs.net/doc/5f11910159.html,) 数据库结构说明,以及自己在后台备份不需要备份的表(红色字体是不需要备份的表)数据库采用mysql,共78张表 ecs_account_log:账户变动日志(注册用户充值、支付等记录信息) ecs_ad:广告表 ecs_admin_action:管理员权限表(定义了128项功能操作) ecs_admin_log:管理员操作日志表 ecs_admin_message:管理员留言表 ecs_admin_user:系统管理员表 ecs_adsense:站外JS投放 ecs_ad_position:广告位置表 ecs_affiliate_log:分成记录表 ecs_agency:办事处列表 ecs_area_region:区域范围表(如配送区域等) ecs_article:文章表 ecs_article_cat:文章分类表 ecs_attribute:各类商品扩展属性管理表 ecs_auction_log:拍卖活动出价记录表 ecs_auto_manage:自动上下架管理 ecs_bonus_type:红包类型 ecs_booking_goods:缺货登记 ecs_brand:商品品牌表 ecs_card:祝福贺卡表 ecs_cart:购物车 ecs_category:商品分类表 ecs_cat_recommend:首页推荐商品分类 ecs_collect_goods:用户商品收藏表

ecs_comment:用户评论表 ecs_crons:计划任务 ecs_email_list:邮件订阅表 ecs_email_sendlist:待发送邮件列表 ecs_error_log:错误日志 ecs_exchange_goods:积分商城商品表 ecs_favourable_activity:优惠活动表 ecs_feedback:用户留言表 ecs_friend_link:友情连接表 ecs_goods:商品表 ecs_goods_activity:参加活动商品表(如夺宝奇兵、团购、拍卖、礼包)ecs_goods_article:商品关联文章 ecs_goods_attr:商品对应的扩展属性表 ecs_goods_cat:商品扩展分类表 ecs_goods_gallery:商品对应的图片列表 ecs_goods_type:网站所有的商品类型(如化妆品) ecs_group_goods:配件商品 ecs_keywords:网站搜索关键字表 ecs_link_goods:相关商品 ecs_mail_templates:发送邮件的模板表 ecs_member_price:商品会员价格表 ecs_nav:导航栏目设置 ecs_order_action:订单操作表 ecs_order_goods:订单商品表 ecs_order_info:订单信息表 ecs_pack:商品包装 ecs_package_goods:礼包关联商品表 ecs_payment:支付方式表 ecs_pay_log:付费日志 ecs_plugins:插件 ecs_region:全国地区表 ecs_searchengine:搜索引擎 ecs_sessions:网站用户session表

ecshop连接数据库的文件是哪个

ECShop2.5.1_Beta upload 的目录 ┣activity.php 活动列表 ┣affiche.php 广告处理文件 ┣affiliate.php 生成商品列表 ┣article.php 文章内容 ┣article_cat.php文章分类 ┣auction.php 拍卖前台文件 ┣brand.php 品牌列表 ┣captcha.php 生成验证码 ┣catalog.php 列出所以分类及品牌 ┣category.php 商品分类 ┣comment.php 提交用户评论 ┣compare.php 商品比较程序 ┣cycle_image.php 轮播图片程序 ┣feed.php RSS Feed 生成程序 ┣flow.php 购物流程 ┣gallery.php 商品相册 ┣goods.php 商品详情 ┣goods_script.php 生成商品列表 ┣group_buy.php 团购商品前台文件 ┣index.php 首页文件 ┣myship.php 支付配送DEMO ┣pick_out.php 选购中心 ┣receive.php 处理收回确认的页面 ┣region.php 地区切换程序 ┣respond.php 支付响应页面 ┣robots.txt ┣search.php 搜索程序 ┣sitemaps.php google sitemap 文件 ┣snatch.php 夺宝奇兵前台页面 ┣tag_cloud.php 标签云 ┣topic.php 专题前台 ┣user.php 会员中心 ┣vote.php 调查程序 ┣wholesale.php 批发前台文件 ┣admin文件夹 ┃┣account_log.php 管理中心帐户变动记录 ┃┣admin_logs.php 记录管理员操作日志 ┃┣ads.php 广告管理程序 ┃┣adsense.php 站外JS投放的统计程序 ┃┣ad_position.php广告位置管理程序 ┃┣affiliate.php 程序说明

ECshop模板制作教程

ECshop模板制作教程 我是一个EC新手,EC就算做再多的模板,肯定也满足不了我们的需要,更何况各行有各行的门道,EC统一做出来的模板也不一定合适于我们这个行业用,因此,只有我们真正掌握了自己做模板,修改模板的功夫,才能真正的打造适合自己的电子商务平台,真正打造符合自己行业内的客户习惯的电子商务平台。 首先欢迎各位浏览本教程,恭喜大家使用 ECshop,!EC有多好,ECshop是PHP 构建的,PHP的应用我也不想多说了(亚马逊:https://www.360docs.net/doc/5f11910159.html,,雅虎:https://www.360docs.net/doc/5f11910159.html,,百度:https://www.360docs.net/doc/5f11910159.html,淘宝:https://www.360docs.net/doc/5f11910159.html,新浪:https://www.360docs.net/doc/5f11910159.html,,腾讯:https://www.360docs.net/doc/5f11910159.html,),(ps: ECshop成功了!在这一刻,他是伟大电子商务的传承,他不是一个人在战斗,他不是一个人 -_-!!! ) 我也不多讲了大家都知道,不过有时候热爱潜水的我真的时是实在忍不住要跳出来说两句. 本教程适用于了解 ECshop 和 ECshop模板DIY 以及它们的日常使用,在查看前阁下需要至少会使用一种编辑器(exp:Dreamweaver, editplus, emacs, vi, ee …意思就是可视化的HTML编辑器或者直接文本编辑器,我在讲的时候用Dreamwaver来讲,这样比较适合初学者和设计师)。这个教程目前由我一个人维护,但我相信,过不了多久就会有多人持续地维护。其中的内容需要不断地更新。如果您有兴趣参加,嘿嘿,PM我。我们一起为大家服务啊. 通过对本教程的学习,只要您边看边跟着做,一定能够学会自己做模板的。:) 下列章节的适用于ECshop程序。同时这里许多内容和一些 Smarty相关。假如您已经熟悉这些内容可跳过不阅读。假如您是ECshop新手并且想diy一下自己的店铺,那您应该认真详细地从头到尾读一遍这些章节。( ps: 大家不要紧张,我会尽量用人类的语言和大家交流,实在万不得已才会用机器语言展示给大家 ) 希望大家能够通过本教程,想要什么模板都能自己做出来。哈哈!一起加油吧! 第一章节: 读取这些内容,您将了解: 每个前台页面所对应的模板页面,模板文件的目录结构。 一些最基本的ECshop模板修改方法。 模板的路径以及相关包含文件的方法(深入了解Dreamweaver模板制作)。 一些常用模板例子讲解. 模板存放路径: ecshop/themes/xxxxx 其中的xxxxx就是某一套模板,如系统一般会自带的

ecshop常见问题汇总

Ecshop常见问题汇总 ECSHOP开发中心(https://www.360docs.net/doc/5f11910159.html,) 1、如何修改网站"欢迎光临本店" 回答(1) languages\zh_cn\common.php文件中,$_LANG['welcome'] = '欢迎光临本店';将他修改成你需要的字样。 还有member_info.lbi里面的welcome字样。 回答(2) 打开网站后台-模板选择-语言项编辑选择公共语言包-搜索“欢迎”进行修改 2、如何修改登录\注册字体的颜色 在库文件member_info.lbi 中修改 3、如何修改首页"热门搜索关键字" 后台-系统设置-网店设置-显示设置-首页搜索关键字,修改他的内容,然后保存,必须是英文半角字符隔开 4、如何修改首页标题"Powered by ECShop" includes/lib_main.php,找到$page_title = $GLOBALS['_CFG']['shop_title'] . ' - ' . 'Powered by ECShop';修改成$page_title = $GLOBALS['_CFG']['shop_title']就可以了。 5、如何发布首页公告 后台->系统设置->商店设置->网店信息->商店公告. 6、如何修改网站logo 用你的logo图片替换/themes/当前使用模板/images/logo.gif (以你当前logo图的名称为准) 7、如何去除ecshop产品详细页产品点击率 模板文件中,打开goods.dwt,删除{$lang.goods_click_count}: {$goods.click_count}

05ecshop项目概述

回顾 PDO:PHP数据对象,作为了一个数据抽象层来负责向下连接各种指定的数据库。 1.加载PDO扩展 2.创建PDO对象(连接数据库):new PDO($dsn,$user,$pass) 3.组织SQL并发送 a)PDO::exec:没有数据(结果集返回),返回受影响的行数 b)PDOStatement PDO::query:有结果集,返回结果集对象 4.处理返回结果 a)结果集记录数:PDOStatement::rowCount,columnCount b)取出结果集:fetch(PDO::FETCH_BOTH,FETCH_ASSOC,FETCH_NUM),fetchAll, fetchColumn,fetchObject 5.关闭PDO(unset(PDO对象)) 预处理 1.发送预处理:PDOStatement PDO::prepare 2.准备执行数据 a)传入一个参数数据:PDOStatement::execute($array) b)在执行前绑定变量:bindParam,bindValue,使用PDOStatement::execute PDO事务处理 PDO::beginTransaction:开启事务 PDO::commit:确认提交 PDO::rollback:回滚 PDO异常处理 1.设置错误处理模式为异常模式: PDO::setAttribute(PDO::ATTR_ERRORMODE,PDO::ERRMODE_EXCEPTION) 2.指定异常语句库去捕捉异常 try{//可能出现错误的语句}catch(PDOException $e){//抓取错误并处理$e->getTrace()} 反射:Reflection 将一个类的内部的结构给反映出来:ReflectionClass 获取常量:getConstants 获取属性:getProperties 获取方法:getMethods

ECSHOP首页显示ecshop积分商城里的商品方法

ECSHOP首页显示ecshop积分商城里的商品方法 ECSHOP教程网:https://www.360docs.net/doc/5f11910159.html,/ecshop-ercikaifa/272.htm 下面就以ECSHOP官方默认模板为基础,给大家提供一个完整的解决方案。 (本教程由ECSHOP120(https://www.360docs.net/doc/5f11910159.html,)提供,如要转载,请注明出处) 1)、 首先打开index.php 文件 在最末尾增加下面函数,注意千万不要写到“?>”的外面去,要加在“?>”的前面。 /** * 获得积分商城热门商品 * * @param int $limit 列出条数 * @param int $ishot 是否只显示热销 * @return array */ function index_get_exchange($limit=3,$ishot=0) { /* 获得热门积分商品列表*/ $sql_ishot=$ishot ? " AND eg.is_hot=1 " : ""; $sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, eg.exchange_integral, ' . ' g.goods_type,g.goods_brief, g.goods_thumb, g.goods_img, eg.is_hot ' . ECSHOP二次开发https://www.360docs.net/doc/5f11910159.html, ' FROM ' . $GLOBALS['ecs']->table('exchange_goods') . ' AS eg LEFT JOIN ' . $GLOBALS['ecs']->table('goods') . ' AS g ON g.goods_id = eg.goods_id ' . ' WHERE eg.is_exchange = 1 AND g.is_delete = 0 '. $sql_ishot .' limit '.$limit; $res = $GLOBALS['db']->getAll($sql); $arr = array(); foreach($res AS $idx => $row) { $arr[$idx]['name'] = $row['goods_name']; $arr[$idx]['goods_brief'] = $row['goods_brief']; $arr[$idx]['goods_style_name'] = add_style($row['goods_name'],$row['goods_name_style']); $arr[$idx]['exchange_integral'] = $row['exchange_integral']; $arr[$idx]['type'] = $row['goods_type']; $arr[$idx]['goods_thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true); 转载请注明:文章转载自ECSHOP教程网https://www.360docs.net/doc/5f11910159.html,

ECSHOP模板头部修改

今天开始从头部进行修改,头部的话针对的是所有的页面,你可以把头部做成一个公用文件,不过由于调用的JS和一些样式的不同也可以分开来做,如果要做成公共头文件的话,要把所有页面都会调用的JS和CSS加载上,不过东西也不多的,下面我就做成一个公共文件来用。 先讲一下每个页面的关键字:{$keywords},这是使用的smarty模板变量用来输出。“{}”是用来规定标签的开始与结束位置,有些类似于PHP中的“”,原理是一样的,中间的变量$keywords是从后台PHP文件中传输过来的变量,里面存储有值,{$keywords}就是把里面的值进行输出,由于{$keywords}和{$page_title}(页面标题的输出,在title标签间输出)是包含在head标签中的,所以我们可以不用动它们,不必把它们写进公共头文件。在head 标签中还有一个{insert_scripts files=','},它是用来调用JS文件的,如所见,它调用了,两个JS文件,head内的我们都不做为公共头文件,不过一会在公共头文件中我们会用到这个调用JS的方式,把所有要用到的JS文件调用进来。 首先新建一个公共头文件与其它*.dwt文件放一起,在第一行我们调用所有的JS文件:{insert_scripts files=',,auto_,,,,,,shopping_,,,,,'} JS文件很多,但不是每个页面都会用到所有的JS文件,或都有的页面已经在head中调用了一些需要使用的JS文件,有与我们写的JS文件重复的,没有关系,我们只是为了做一个公共文件,不用在每个页面都单独再去调用,有重复不会有任何影响。 下来我们来确定一下的字符集设置: 我使用的是gbk字符集,如果你使用的是utf-8的话,就要把字符集进行相应设置。 下面是一段JS代码: 设置它是为了防止有些页面调用JS页面时出现加载错误而无法正常运行程序。 下面是对LOGO图片的设置:

ECSHOP编码命名规范

ECSHOP 编码规范 1.编辑器设定 1.1. 缩进 所有的缩进使用空格取代Tab制表符。PHP文件采用4个空格的缩进,HTML文件以及HTML文件中嵌入的Javascript代码采用2个空格的缩进;单独的Javascript以及CSS文件采用4个空格的缩进。 1.2. 字符编码 所有PHP、HTML文件均保存为No Bom UTF-8的字符编码。 变量名应当全部小写,并且词语之间以单个下划线分隔。 例如:$current_user 是正确的,但是$currentuser 和$CurrentUser 就不正确。 名称应当是描述性的,并且简明。我们自然不希望使用冗长的句子作为变量名,但是多输入几个字符总好于疑惑于某个变量到底是干什么用的。 1.3. 循环计数器 允许使用一个单字符变量名的唯一情形是当它作为一个循环计数器的时候。在这种情况下,外层循环的计数器应当始终是$i。如果有一个循环处于这个循环的内部,它的计数器应当是$j,进而是$k,等等。如果循环的计数器是一个已经存在并且名字有意义的变量,本规范并不适用。 例如: for ($i = 0; $i < $outer_size; $i++) { for ($j = 0; $j < $inner_size; $j++) { foo($i, $j); } }

1.4. 函数名称 函数也应该描述性地命名。这里我们并非在用C 编程,我们不希望写出诸如“stristr()”此类的函数来。同上,使用单词间用单下划线分隔的小写名称。函数名称中某处最好有一个动词。较好的函数名称如print_login_status(),get_user_data(),等等。 1.5. 函数参数 参数遵循和变量名字相同的约定。我们不希望一堆这样的函数:do_stuff($a, $b, $c)。在大部分情况下,我们希望仅仅看看函数的声明,就知道怎样使用它。 1.6. 类的名称 类的名称首先必须是一个有意义的英文单词或者词组。同时在书写格式上为了使类名和函数、变量有一个区别,我们要求类的名称全小写的写法,并且加上cls_作为前缀。 例如: /* 错误的写法 * class image_handle {} class imagehandle {} class imageHandle {} /* 正确的写法 * class cls_imagehandle {} 1.7. 总结 这里的基本哲学是不要为了偷懒而伤害了代码的清晰。但是,必须由一些常识来掌握这种平衡;例如,print_login_status_for_a_given_user() 做得就过火了——这个函数命名为print_user_login_status() 更好些,或只是print_login_status()。 2.代码布局 这里是一个头部的模板,所有的PHP文件的开始都必须包含下面的内容: /** * ECSHOP 升级程序之控制器 * ================================================================= =========== * 版权所有 (C) 2005-2007 康盛创想(北京)科技有限公司,并保留所有权利。 * 网站地址: https://www.360docs.net/doc/5f11910159.html,

ecshop函数大全

所有函数功能说明: lib_time.php gmtime() P: 获得当前格林威治时间的时间戳/$0 server_timezone() P: 获得服务器的时区/$0 local_mktime($hour = NULL , $minute= NULL, $second = NULL, $month = NULL, $day = NULL, $year = NULL) P: 生成一个用户自定义时区日期的GMT时间戳 local_date($format, $time = NULL) P: 将GMT时间戳格式化为用户自定义时区日期 gmstr2time($str) P: 转换字符串形式的时间表达式为GMT时间戳 local_strtotime($str) P: 将一个用户自定义时区的日期转为GMT时间戳 local_gettime($timestamp = NULL) P: 获得用户所在时区指定的时间戳 local_getdate($timestamp = NULL) P: 获得用户所在时区指定的日期和时间信息

lib_base.php sub_str($str, $length = 0, $append = true) P: 截取UTF-8编码下字符串的函数 real_ip() P: 获得用户的真实IP地址 str_len($str) P: 计算字符串的长度(汉字按照两个字符计算) get_crlf() P: 获得用户操作系统的换行符 send_mail($name, $email, $subject, $content, $type = 0, $notification=false) P: 邮件发送 gd_version() P: 获得服务器上的GD 版本 file_get_contents($file) P: 如果系统不存在file_get_contents函数则声明该函数 file_put_contents($file, $data, $flags = ”) P: 如果系统不存在file_put_contents函数则声明该函数 floatval($n) P: 如果系统不存在floatval 函数则声明该函数 file_mode_info($file_path) P: 文件或目录权限检查函数 log_write($arg, $fi le = ”, $line = ”) P: 写入日志内容 make_dir($folder) P: 检查目标文件夹是否存在,如果不存在则自动创建该目录 gzip_enabled() P: 获得系统是否启用了gzip addslashes_deep($value) P: 递归方式的对变量中的特殊字符进行转义

ecshop模板制作入门教程

ecshop模板制作入门教程 本教程适用于了解 ecshop 和 ecshop模板DIY 以及它们的日常使用,在查看前阁下需要至少会使用一种编辑器(exp:Dreamweaver, editplus, emacs, vi, ee …意思就是可视化的HTML编辑器或者直接文本编辑器,我在讲的时候用Dreamwaver来讲,这样比较适合初学者和设计师) 通过对本教程的学习,只要您边看边跟着做,一定能够学会自己做模板的。:) 下列章节的适用于ecshop程序。同时这里许多内容和一些 Smarty相关。假如您已经熟悉这些内容可跳过不阅读。假如您是ecshop新手并且想diy一下自己的店铺,那您应该认真详细地从头到尾读一遍这些章节。( ps: 大家不要紧张,我会尽量用人类的语言和大家交流,实在万不得已才会用机器语言展示给大家 ) ecshop模板堂,电商系统及服务提供领导品牌!专注于ecshop模板开发、微信商城、商城APP等电商解决方案,助力千万企业早日实现电子商务! 希望大家能够通过本教程,想要什么模板都能自己做出来。哈哈!一起加油吧! ecshop模板堂是国内电商系统及服务提供领导品牌,市场占有率占行业份额70%以上,用户口碑、服务评价、产品质量均属业内领先地位。 产品链贯穿PC端(大商创B2B2C商城系统)、微信端(ECTouch微商城)、APP端(ECjia 商城APP),为传统行业插上互联网的翅膀。 第一章节: 读取这些内容,您将了解:

每个前台页面所对应的模板页面,模板文件的目录结构。 一些最基本的ecshop模板修改方法。 模板的路径以及相关包含文件的方法(深入了解Dreamweaver模板制作)。 一些常用模板例子讲解. 模板存放路径: ecshop/themes/xxxxx 其中的 xxxxx 就是某一套模板,如系统一般会自带的模板文件名叫做 default, (即:ecshop/themes/default )里面放的就是安装好时的默认模板,以下所有的说明都是针对默认模板来讲解. 操作前提,将您当前使用的模板调整为default模板,然后清空缓存。 接下来我们进入default目录,可以看到以下文件目录: images/ (存放模板中用到的图片) library/ ( 存放一些小模板文件及重复被用到的模板文件 ) style.css (模板样式文件) index.dwt (首页的模板 index.php) goods.dwt ( 商品显示页的模板 goods.php) *.dwt (表示其它.dwt文件) 虾米?难道你不相信这些就是模板吗?好,那我证明给你看看. 我们把把images里面的logo.gif文件的名字,改为logo2.gif,然后我们随便找一张gif图片,起名为logo.gif放到images目录中,然后我们刷新首页。看到没?首页logo被修改了。 如果你觉得大小不合适,那么我们打开library目录中的 page_header.lib 查看源代码,然后搜索 images/logo.gif 然后看它后面 width=”130″ height=”56″把130和56改为相应的值就可以了,到前台刷新看看。 好接下来我们用dreamweaver打开index.dwt文件,在源代码中搜索{$page_title} ,找到后,将{$page_title} 修改为超级无敌的大卖场. 然后到到浏览器前台刷新,看看页面有什么变化。虾米?没有发现吗?看看浏览器头

ECSHOP各文件夹功能说明

ECSHOP各文件夹功能说明 1、根目录:前台程序文件 2、admin:后台程序文件夹 --根目录:后台程序文件*.php文件 --help\zh_cn:各功能的帮助文件*.xml文件 --images:后台页面用图片 --includes:后台公用文件和函数 --js:后台用js脚本 --styles:后台用样式表 --templates:后台页面模板*.htm文件 3、api:调用API的系统公用函数 4、cert:存放证书的文件夹 5、data:数据连接设置等,包括各种广告的上传图片等 --afficheimg:首页flash广告图片 --brandlogo:品牌logo 6、images:上传商品图片文件夹,按日期分目录 --200902:按月份划分商品图片 --upload:上传文件夹,包括file、flash、image和media 7、includes:前台公用文件和函数 --codetable:语言对应的代码表 --fckeditor:开源html文本编辑器 --modules\convert:shopex转换文件 --modules\cron:如自动上下架、ip删除等函数 --modules\integrates:整合各种插件和函数基础类 --modules\payment:各种支付接口插件 --modules\shipping:各种送货方式插件 8、install:系统安装文件夹,用后请删除 9、js:前台用js脚本 --calendar:日历控件 10、languages:语言文件 --zh_cn:简体中文语言文件,存储简体中文下使用的函数变量等--zh_tw:繁体中文语言文件,存储繁体中文下使用的函数变量等 11、temp:存放临时缓存等文件 12、themes:模板文件夹,可以随意拷贝模板样式 13、wap:手机浏览程序

ECshop 所有系统通用 多货币解决方案

ECshop 所有系统通用 多货币解决方案 1、首先在我们的后台网店设置里要添加汇率转换的功能,如何添加网店功能自己摸索一下,你要把添加的功能 插入表里。如图: 我们的汇率都是和美元进行转换的。 2、开始前台实现:首先我们在首页加上多语言的链接如图: 我们看下他的url ?View Code HTML 10 11 12 13 14 15 16

这个{$url_head} 我是重新建了一个文件 conn.php 放到首页 每个文件调用 //路径处理 $url_this = "[url=http://]http://".$_SERVER[/url] ['HTTP_HOST'].$_SERVER['PHP_SELF']."?id=".$_GET['id']; $smarty->assign("url_head",$url_this); 3、我们发现都是在每个页面后面传了一次get 值 那么在那接这些get 值呢 我们肯定要找每个页面的共同文件 不难想到init.php 我在init.php 的最后加入

ECShop模板中如何实现局部刷新

ECShop模板中如何实现局部刷新 建立一个ajax.js文件,代码如下: // JavaScript Document var xmlHttp; function S_xmlhttprequest() { xmlHttp=null; if (window.XMLHttpRequest) {// code for IE7, Firefox, Opera, etc. xmlHttp=new XMLHttpRequest(); } else if (window.ActiveXObject) {// code for IE6, IE5 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } function getName(name) { if(name = https://www.360docs.net/doc/5f11910159.html,.value) { S_xmlhttprequest(); xmlHttp.open("get","date.php?name="+name,true); xmlHttp.onreadystatechange = byname; xmlHttp.send(null); } }

function byname() { if(xmlHttp.readyState ==1) { document.getElementById('name').innerHTML = "loading...."; } if(xmlHttp.readyState == 4) { if(xmlHttp.status == 200) { var name = xmlHttp.responseText; document.getElementById('name').innerHTML = name; } } } function getEmail(email) { var email = document.myform.email.value; if(email =="") { alert("用户名不能为空"); document.myform.email.focus(); return false; } else { S_xmlhttprequest(); xmlHttp.open("get","date.php?email="+email,true); xmlHttp.onreadystatechange = byemail; xmlHttp.send(null); }