php购物车是怎么实现的

Mrzhou
Mrzhou
Mrzhou
257
文章
1
评论
2018年6月25日03:05:14 评论 35

php购物车是怎么实现的?

PHP简单实现购物车

首先,判断是否登录:

if(isset($_session['user_id'])){
存在;
把用户id和商品id,加入购物车表
}else{
不存在;
使用cookie把商品ID和主机IP放入一个数组
,把这个数组存入cookie;
浏览器允许存放300个cookie,
每个cookie的大小为4KB,足以满足购物车的要求,同时也
减轻了服务器的负荷
}

假如浏览器把cookie禁用,使用memcache来实现

另一种方法,判断是否登录:

if(isset($memcache->get('user_id'))){
存在;
把用户id和商品id,加入购物车表
}else{
不存在;
$memcache = new Memcache(); //实例化memchche
$data=['goods_id'=>$goods_id,'ip'=>$_SERVER
['REMOTE_ADDR']];
$memcache->set('key键',serialize($data));
}

redis实现与memcache没有太大的区别!

memcache代码如下:

$cart=new Cart();
        $goods_id = isset($_GET['goods_id']) ? $_GET['goods_id'] : '1';
        $session = \yii::$app->session;
//        $session->set('user_id','1');
        $user_id = $session->get("user_id");
        $mem = Yii::$app->cache;
        if(isset($user_id)){
            $data['user_id'] = $user_id;
            $data['goods_id'] = $goods_id;
            $is_add=$cart->setAttributes($data)->insert();
        }else{
            $data['user_id'] = $_SERVER['REMOTE_ADDR'];
            $data['goods_id'] = $goods_id;
            $mem->set('data',serialize($data));
        }
        unserialize($mem->get('data'));    //memcache数据

以上两种方法都可以实现,假如使用第一种的话,我们就得设置cookie的失效时间,假如使用第二种的话,取值的时候需要反序列化 unserialize() ,接着就可以拿到你要拿到的数据了!

继续阅读
Mrzhou
  • 本文由 发表于 2018年6月25日03:05:14
  • 转载请务必保留本文链接:https://zhouxiaosong.com/906.html
视频网HTML5播放小工具 脚本编程

视频网HTML5播放小工具

默认支持视频站点:油管、TED、优酷、土豆、QQ、B站、西瓜视频、爱奇艺、A站、PPTV、芒果TV、新浪、微博、网易娱乐、云课堂、新闻、搜狐、风行、百度云视频等; 直播:斗鱼、YY、虎牙、龙珠、战旗;...
Pycharm IDE 安装及注册激活笔记(1) 脚本编程

Pycharm IDE 安装及注册激活笔记(1)

一、Windows 下的安装及激活. 1、首先去Pycharm官网,或者直接进入网址点击进入:,下载PyCharm安装包,根据自己电脑的操作系统进行选择,对于windows系统选择下图的框框所包含的安...
PHP SPL 标准库之 Countable 脚本编程

PHP SPL 标准库之 Countable

本文实例讲述了PHP标准库 (SPL)——Countable用法。分享给大家供大家参考,具体如下: 类实现 Countable 可被用于 count() 函数. 接口摘要 Countable { /*...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: