文档章节

分析ecshop赠品在购物车中出现

adbug
 adbug
发布于 2015/06/17 09:31
字数 576
阅读 4
收藏 0
点赞 0
评论 0

ecshop是一个非常灵活的电子商务系统,他可以在优惠活动中,为某个商品增加赠送礼品.不但可以设置价格,还可以免费赠送。

    在购物的时候,如果你选择了某商品,而且该商品又设置了赠送礼品,那么在购物车的cart页面,将会通过以下程序调用赠品.看下面以下ecshop函数,另外还做了一些修改,完善了漏洞

/**
 * 取得某用户等级当前时间可以享受的优惠活动
 * @param   int     $user_rank      用户等级id,0表示非会员
 * @return  array
 */
function favourable_list($user_rank,$goods_id1)
{
    /* 购物车中已有的优惠活动及数量 */
    $used_list = cart_favourable();


    /* 当前用户可享受的优惠活动 */
    $favourable_list = array();
    $user_rank = ',' . $user_rank . ',';
    $now = gmtime();
    $sql = "SELECT * " .
            "FROM " . $GLOBALS['ecs']->table('favourable_activity') .
            " WHERE CONCAT(',', user_rank, ',') LIKE '%" . $user_rank . "%'" .
            " and act_range_ext like '%".$goods_id1."%' AND start_time <= '$now' AND end_time >= '$now'" .
            " AND act_type = '" . FAT_GOODS . "'" .
            " ORDER BY sort_order";
    $res = $GLOBALS['db']->query($sql);
    while ($favourable = $GLOBALS['db']->fetchRow($res))//SQL中的LIKE语句,获取了跟商品ID相似的记录,所以会出现“618=18”的错误问题,那么赠品类目就会有问题
    {
   //此处是把获取的赠品中的ID,中的,号分割
$act_range_ext=$favourable["act_range_ext"];
   $str1=explode(',',$act_range_ext);
//分割的ID逐一匹配商品ID
foreach($str1 as $k)
   {
//如果分割的ID值和商品的ID对应的话,执行此代码
if($k==$goods_id1)
{
$favourable['start_time'] = local_date($GLOBALS['_CFG']['time_format'], $favourable['start_time']);
$favourable['end_time']   = local_date($GLOBALS['_CFG']['time_format'], $favourable['end_time']);
$favourable['formated_min_amount'] = price_format($favourable['min_amount'], false);
$favourable['formated_max_amount'] = price_format($favourable['max_amount'], false);
$favourable['gift']       = unserialize($favourable['gift']);
foreach ($favourable['gift'] as $key => $value)
{
//判断商品上下架
$favourable['gift'][$key]['formated_price'] = price_format($value['price'], false);
//$favourable['gift'][$key]['goods_thumb'] = $GLOBALS['db']-> getOne("select goods_thumb from ".$GLOBALS['ecs']->table('goods')." where goods_id = $value[id]");
//判断赠送的商品的是否正常,如果不正常则不显示次赠品
$sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('goods') . " WHERE is_on_sale = 1 AND goods_id = ".$value['id'];
$is_sale = $GLOBALS['db']->getOne($sql);
if(!$is_sale)
{
//print_r($favourable['gift'][$key]);
unset($favourable['gift'][$key]);
}
}

$favourable['act_range_desc'] = act_range_desc($favourable);
$favourable['act_type_desc'] = sprintf($GLOBALS['_LANG']['fat_ext'][$favourable['act_type']], $favourable['act_type_ext']);

/* 是否能享受 */
$favourable['available'] = favourable_available($favourable);
if ($favourable['available'])
{
/* 是否尚未享受 */
$favourable['available'] = !favourable_used($favourable, $used_list);
}

$favourable_list[]= $favourable;
}
}
        
    }
//print_r($favourable_list);
    return $favourable_list;
}

    其中的gift值就是赠品的数据信息.而在模板flow.dwt中。

    !-- {foreach from=$favourable.gift item=gift} --><br />
       <input type="checkbox" value="{$gift.id}" name="gift[]" />
       <a href="/goods.php?id={$gift.id}" target="_blank">{$gift.name}</a> [{$gift.formated_price}]
      <!-- {/foreach} -->

   就是循环显示赠品的相关信息.

© 著作权归作者所有

共有 人打赏支持
adbug
粉丝 6
博文 75
码字总数 198249
作品 0
成都
ecshop 完美解决动态ip登录超时和购物车清空问题

ECSHOP模板/ecshop开发中心(www.68ecshop.com) / 2014-05-06 前一段时间,ECSHOP开发中心的一个客户说自己的ecshop网店出了状况,就是有时候登录的时候会自动退出。而且购物车也没规律的会清...

thinkyoung ⋅ 2015/06/24 ⋅ 0

ecshop session丢失问题

ecshop session丢失问题 电子商务PHP 用ecshop搭建了一个电子商务的系统,本地测试一切正常。放到服务器上出现问题: 症状: 点着点着经常无故退出,感觉session被清空了。查找原因:ecshop中...

thinkyoung ⋅ 2015/06/29 ⋅ 0

linux下安装ecshop,

本文参考https://blog.csdn.net/fuwei52406/article/details/50547366,略有修改。 感谢原作者。 安装apache服务器,php服务器,mysql服务器 yum install httpd yum install php 卸载掉原有mys...

云中栖 ⋅ 05/28 ⋅ 0

ecshop 工作流程加载配置介绍

ecshop 工作流程加载配置介绍 分类: ecshop2014-09-14 09:36 729人阅读 评论(2) 收藏 举报 模板引擎工作流 这里简单介绍下echsop工作流程: 首先,你会发现一般的echsop的php文件都会引入i...

thinkyoung ⋅ 2015/05/21 ⋅ 0

第三方支付接口现号,第三方支付接口对接,第三方支付接口申请

第三方支付公司太多,到目前为止一共有5批206家拿牌支付公司:国付宝,支付宝,环迅,汇潮,易宝,快钱,智付,等等不管您从事与哪家,我们都必须面对这些事实,每家支付公司都有自己的优势跟...

alaimaro ⋅ 04/26 ⋅ 0

代码审计ECShop-V3.0.0 漏洞集合

  0×00 背景   不久前对ECShop-V3.0.0进行了一次粗浅的审计,还是发现了一些问题。本篇分析的漏洞利用条件是比较苛刻的,但是重要的是能够在审计的过程中学习到新的思路和知识,期待和师...

FreeBuf ⋅ 05/15 ⋅ 0

ECshop会员添加权限的开发教程

由于会员管理权限里面就包括会员添加和查看会员列表。但是这次开发需要只有会员添加权限,不允许看到其他会员的任何信息,所以才会有这两天的菜鸟级开发。希望对菜鸟级的人有用,因为在网上搜...

kangjunfei ⋅ 05/17 ⋅ 0

2018年5月第一二周下载中心资源下载TOP榜

2018年5月01日至2018年5月14日下载中心资源下载TOP榜 A、系统运维 NO.1 下载数:282 资源标题:Linux操作系统(上百个新特性)_红帽RHEL7新特性与功能汇总V1.0 资源地址:http://down.51cto.c...

51CTO下载 ⋅ 05/15 ⋅ 0

loading-cli 1.0.6 发布,命令行 loading 效果

loading-cli 1.0.6 发布,命令行loading效果。 更新内容 ee2991b - 修复参数frames无效.

同一种调调 ⋅ 01/21 ⋅ 0

ecshop经验小结

首先,你需要了解表(目前2.7.3版本共92表)之间的关联,见下。 其次,你需要了解一下目录结构,研究一下includes/init.php,因为它在程序运行之初做了很多你想不到的事情 请参考 http://www...

崔小凯 ⋅ 2015/05/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

CodeSheep ⋅ 今天 ⋅ 0

骰子游戏代码开源地址

因为阿里云现在服务器已经停用了,所以上面的配置已经失效。 服务端开源地址:https://gitee.com/goalya/chat4.git 客户端开源地址:https://gitee.com/goalya/client4.git 具体运行界面请参考...

算法之名 ⋅ 今天 ⋅ 0

设计模式--装饰者模式

装饰者模式 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 通用类图 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比...

gaob2001 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部