小編給大家分享一下php購(gòu)物車(chē)是如何實(shí)現(xiàn)的,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括吉安網(wǎng)站建設(shè)、吉安網(wǎng)站制作、吉安網(wǎng)頁(yè)制作以及吉安網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,吉安網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到吉安省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
php購(gòu)物車(chē)是怎么實(shí)現(xiàn)的?
PHP簡(jiǎn)單實(shí)現(xiàn)購(gòu)物車(chē)
首先,判斷是否登錄、
if(isset($_session['user_id'])){ 存在; 把用戶(hù)id和商品id,加入購(gòu)物車(chē)表 }else{ 不存在; 使用cookie把商品ID和主機(jī)IP放入一個(gè)數(shù)組 ,把這個(gè)數(shù)組存入cookie; 瀏覽器允許存放300個(gè)cookie, 每個(gè)cookie的大小為4KB,足以滿(mǎn)足購(gòu)物車(chē)的要求,同時(shí)也 減輕了服務(wù)器的負(fù)荷 }
假如瀏覽器把cookie禁用,使用memcache來(lái)實(shí)現(xiàn)
另一種方法,判斷是否登錄、
if(isset($memcache->get('user_id'))){ 存在; 把用戶(hù)id和商品id,加入購(gòu)物車(chē)表 }else{ 不存在; $memcache = new Memcache(); //實(shí)例化memchche $data=['goods_id'=>$goods_id,'ip'=>$_SERVER ['REMOTE_ADDR']]; $memcache->set('key鍵',serialize($data)); }
redis實(shí)現(xiàn)與memcache沒(méi)有太大的區(qū)別!
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數(shù)據(jù)
以上兩種方法都可以實(shí)現(xiàn),假如使用第一種的話,我們就得設(shè)置cookie的失效時(shí)間,假如使用第二種的話,取值的時(shí)候需要反序列化 unserialize() ,接著就可以拿到你要拿到的數(shù)據(jù)了!
以上是php購(gòu)物車(chē)是如何實(shí)現(xiàn)的的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!