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() ,接着就可以拿到你要拿到的
数据了!
原博文:https://www.cnblogs.com/hangxing1996/p/6756650.html