• 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() ,接着就可以拿到你要拿到的
    数据了!

  • 相关阅读:
    linux内存不足导致java进程被kill掉
    记一次centos服务器DNS引起的网络问题
    记consul集群和spring cloud集成遇到的问题。
    记一次url未encode遇到的问题
    十六周总结
    十五周总结
    计算最长英语单词链
    大道至简阅读笔记02
    大道至简阅读笔记01
    用户体验评价之搜狗输入法
  • 原文地址:https://www.cnblogs.com/hangxing1996/p/6756650.html
Copyright © 2020-2023  润新知