程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP中如何實現網上商城用戶歷史浏覽記錄的代碼

PHP中如何實現網上商城用戶歷史浏覽記錄的代碼

編輯:PHP綜合

這裡我們拿網上商城源碼ecshop中的相關代碼來說明,怎麼用cookie來實現用戶商品歷史浏覽記錄。

代碼如下:
//如是COOKIE 裡面不為空,則往裡面增加一個商品ID
if (!empty($_COOKIE['SHOP']['history'])){

//取得COOKIE裡面的值,並用逗號把它切割成一個數組
$history = explode(',', $_COOKIE['SHOP']['history']);
//在這個數組的開頭插入當前正在浏覽的商品ID
array_unshift($history, $id);
//去除數組裡重復的值
$history = array_unique($history);
// $arr = array (1,2,3,1,3);
// $arr = array (1,1,2,3,3);
// $arr = array (1,2,3);
//當數組的長度大於5裡循環執行裡面的代碼
while (count($history) > 5){
//將數組最後一個單元彈出,直到它的長度小於等於5為止
array_pop($history);
}
//把這個數組用逗號連成一個字符串寫入COOKIE,並設置其過期時間為30天
setcookie('SHOP[history]', implode(',', $history), $cur_time + 3600 * 24 * 30);

}else{
//如果COOKIE裡面為空,則把當前浏覽的商品ID寫入COOKIE ,這個只在第一次浏覽該網站時發生
setcookie('SHOP[history]', $id, $cur_time + 3600 * 24 * 30);
}

//以上均為記錄浏覽的商品ID到COOKIE裡,下面將講到怎樣用這樣COOKIE裡的數據

//取得COOKIE裡的數據 ,格式為1,2,3,4 這樣,當然也有可以為0
$history =isset ($_COOKIE['SHOP']['history']) ? $_COOKIE['SHOP']['history'] : 0;
//寫SQL語句,用IN 來查詢出這些ID的商品列表
$sql_history = "SELECT * FROM `goods` WHERE `goods_id` in ({$history})";
//執行SQL語句,返回數據列表
$goods_history = $db->getAll($sql_history);
if ($goods_history) {
$tpl->assign ('goods_history',$goods_history);
}

主要是通過操作數組來實現的,用到一些操作數組的函數。

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved