首先,判断是否登录、
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() ,接着就可以拿到你要拿到的

数据了!

PHP简单实现购物车的更多相关文章

  1. 使用MongoDB和JSP实现一个简单的购物车系统

    目录 1 问题描述  2 解决方案  2.1  实现功能  2.2  最终运行效果图  2.3  系统功能框架示意图  2.4  有关MongoDB简介及系统环境配置  2.5  核心功能代码讲解  ...

  2. FineUI小技巧(1)简单的购物车页面

    起因 最初是一位 FineUI 网友对购物车功能的需求,需要根据产品单价和数量来计算所有选中商品的总价. 这个逻辑最好在前台使用JavaScript实现,如果把这个逻辑移动到后台C#实现,则会导致过多 ...

  3. HTML5自学笔记[ 10 ]简单的购物车拖拽

    用html5拖拽功能实现了一个简单的购物车,样式简陋,得学学画画提高下审美了T^T: <!doctype html> <html> <head> <meta ...

  4. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

  5. Python3学习之路~2.2 简单的购物车程序

    程序:购物车程序 需求:启动程序后,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 代码 ...

  6. jQuery使用cookie与json简单实现购物车功能

    本文实例讲述了jQuery使用cookie与json简单实现购物车的方法.分享给大家供大家参考,具体如下: 1.生成一个cookie 用来存储商品的id  String类型 2.添加商品id的时候 把 ...

  7. react做的简单的购物车

    ###第一步 :首先电脑上已经安装react的脚手架 cnpm  install    create-react-app   -g ###第二步 :创建项目 creact-react-app   项目 ...

  8. Java中的策略模式,完成一个简单地购物车,两种付款策略实例教程

    策略模式是一种行为模式.用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略. 策略模式也被称作政策模式.实现过程为,首先定义不同的算法策略,然后客户端把 ...

  9. MVVM架构~knockoutjs实现简单的购物车

    返回目录 概念相关 购物车相信大家都用过,很方便,可以将多个商品添加到购物车,并且可以修改购买商品的数据,当然为了用户体验好,在修改数据时,你的价格也会出现变化的,这使用JS可以实现,但我认为,代码量 ...

  10. php 实现简单加入购物车(1)

          这个购物车相对来说比较简单,用于短暂存储,并没有存储到数据库,购物车对于爱网购的人来说简直是熟悉的不能再熟悉了,在写购物车之前,我们首先要构思一下,我们需要先从数据库中调出一张表格,这里我 ...

随机推荐

  1. 机器学习之决策树(ID3 、C4.5算法)

    声明:本篇博文是学习<机器学习实战>一书的方式路程,系原创,若转载请标明来源. 1 决策树的基础概念 决策树分为分类树和回归树两种,分类树对离散变量做决策树 ,回归树对连续变量做决策树.决 ...

  2. print、println与printf之间的区别

    //print没有换行的而println有自动换行功能.实例:uprint.java class uprint{public static void main(String arg[]){int i, ...

  3. 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest I Lottery

    LotteryCrawling in process... Crawling failed Time Limit:2000MS     Memory Limit:524288KB     64bit ...

  4. XML之外部DTD和内部DTD

    DTD(Document Type Definition):文档类型定义,可以定义合法的XML文档结构,它使用一系列合法元素来定义文档的结构.DTD分为内部DTD和外部DTD,所谓内部DTD是指该DT ...

  5. CentOS、Ubuntu配置网卡子接口

    CentOS # ip addr add dev eth0 lable eth0: 以上为临时配置,重启失效.若需永久保存,增加网络配置文件 # vim /etc/sysconfig/network- ...

  6. Problem E: 可变长数组

    Problem E: 可变长数组 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 472  Solved: 368[Submit][Status][Web ...

  7. asp.net应用发布到IIS无法链接到oracle数据库

    遇到这个问题纠结了好久,试了好多的方法,其中我的问题是,先安装了.net frameword4然后又安装的IIS. 正确方式应该是先安装IIS 然后安装.net framework;且应用程序池没有启 ...

  8. fs-max、file-nr和nofile的关系

    1. file-max /proc/sys/fs/file-max: 这个文件决定了系统级别所有进程可以打开的文件描述符的数量限制,如果内核中遇到VFS: file-max limit <num ...

  9. .Net 中通用的FormatString格式符整理

    格式化日期和数字的字符串经常要用到这个, 就把帮助里面的东西大概整理了一些列在这里了. 下表描述了用来格式化 DateTime 对象的标准格式说明符.格式说明符 名称 说明 d 短日期模式 显示由与当 ...

  10. 两个Xml转换为DataSet方法(C#)

    ///通过传入的特定XML字符串,通过 ReadXml函数读取到DataSet中.protected static DataSet GetDataSetByXml(string xmlData){   ...