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() ,接著就可以拿到你要拿到的資料了!
更多PHP相關知識,請造訪PHP中文網!
以上是php購物車是怎麼實現的的詳細內容。更多資訊請關注PHP中文網其他相關文章!