zoukankan      html  css  js  c++  java
  • 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中iptables的用法
    Git介绍及安装配置
    第一个shell脚本
    Nginx配置优化解读
    Python中print格式化输出
    python 程序构架浅析
    Python 常用字符串操作
    Python入门学习:网络刷博器爬虫
    vSphere SDK for Java
    vROPS中获取虚拟机在VC中的UUID
  • 原文地址:https://www.cnblogs.com/hangxing1996/p/6756650.html
Copyright © 2011-2022 走看看