當前位置:首頁 » 網購平台 » phpsession購物車類
擴展閱讀
寧波奧德賽優惠價格 2021-03-15 14:26:02
丹尼斯購物卡能掛失么 2021-03-15 14:25:58
淘寶購物指紋驗證失敗 2021-03-15 14:24:44

phpsession購物車類

發布時間: 2021-02-27 12:10:03

㈠ php怎麼用session做購物車

class cart
{
/**
* 函數名稱: addItem
* 函數功能: 添加商品
* 輸入參數: $data ------------- 商品數組
* 函數返回值: none
* 其它說明: 因為數據是記錄在session中,所以不用返回
*/
function addItem($data){
global $config_ke;
if(is_array($data)&&!empty($data)){
foreach($data as $key=>$val){
// 如果商品存在就加數量和價格
if($this->_isExists($key)){

$_SESSION['cart'][$key]["paddy_count"] += $val['paddy_count'];
$_SESSION['cart'][$key]["market_count"] += $val['market_count'];
$_SESSION['cart'][$key]["goodsnum"] += intval($val['goodsnum']);
$arr = $this->getItems($key);
// $_SESSION['cart'][$key]["count"] += $_SESSION['cart'][$key]["price"];
/* if(strlen($_SESSION['cart'][$key]["ke"])>0){//沒有刻字,加入刻字
$_SESSION['cart'][$key]["eng_price"]=0;
$_SESSION['cart'][$key]["eng_price"]=(int)$config_ke*intval($arr['num']);
}else{
//die("dd");
$_SESSION['cart'][$key]["eng_price"]=0;
}*/
//echo $arr['num'];
//die();

}
// 否則直接加入
else
{
$_SESSION['cart'][$key] = $data[$key];
// $_SESSION['cart'][$key]["name"] = $val['name'];
// $_SESSION['cart'][$key]["price"] = $val['price'];
// $_SESSION['cart'][$key]["count"] = round($val['price']*intval($val['num']),2);
// $_SESSION['cart'][$key]["num"] = intval($val['num']);
}
}
}
}

/**
* 函數名稱: _isExists
* 函數功能: 判斷此商品是否存在
* 輸入參數: $id ---------- 商品ID
* 函數返回值: bool
* 其他說明: 2004-8-19
*/
function _isExists($id)
{

if(isset($_SESSION['cart'][$id])&&!empty($_SESSION['cart'][$id])&&array_key_exists($id,$_SESSION['cart']))
{
Return true;
}
else
{
Return false;
}
}

/**
* 函數名稱: modItem
* 函數功能: 修改商品數量
* 輸入參數: $id -------------- 商品ID
* $num ------------- 商品數量
* 函數返回值: 返回值說明
* 其他說明: 說明
*/
function modItem($id,$num)
{
$arr = $this->getItems($id);
// 如果商品存在就加數量和價格
if($this->_isExists($id))
{
$_SESSION['cart'][$id]["goodsnum"] = intval($num);
if($arr['paddy_price_special'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price_special']*intval($num),2);
}elseif($arr['paddy_userprice'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_userprice']*intval($num),2);
}elseif($arr['paddy_spreadprice'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_spreadprice']*intval($num),2);
}else{
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price']*intval($num),2);
}
$_SESSION['cart'][$id]["market_count"] = round($arr['market_price']*intval($num),2);
}
}

/**
* 函數名稱: modItem_wanwei
* 函數功能: 修改商品腕圍
* 輸入參數: $id -------------- 商品ID
* $num ------------- 商品腕圍
* 函數返回值: 返回值說明
* 其他說明: 說明
*/
function modItem_wanwei($id,$wanwei)
{
$arr = $this->getItems($id);
// 如果商品存在就加數量和價格
if($this->_isExists($id))
{
$_SESSION['cart'][$id]["wanwei"] = intval($wanwei);

///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
}
}

// function modItem_ke($id,$ke)
// {
// global $config_ke;
// $arr = $this->getItems($id);
// // 如果商品存在就加數量和價格
// if($this->_isExists($id))
// {
// $_SESSION['cart'][$id]["ke"] = $ke;
// $_SESSION['cart'][$id]['price'] = $arr['price'] + $config_ke;
// $_SESSION['cart'][$id]['count'] = round($_SESSION['cart'][$id]['price']*intval($arr['num']),2);
// }
// }

function modItem_ke($id,$ke,$ke1="",$ke2="")
{
global $config_ke;
$arr = $this->getItems($id);
// 如果商品存在就加數量和價格
//var_mp($_SESSION['cart']);
// die();
if($this->_isExists($id))
{
if(strlen($_SESSION['cart'][$id]["ke"]) == 0 && strlen($ke) != 0){//沒有刻字,加入刻字
//$arr['price'] += $config_ke;
$_SESSION['cart'][$id]["eng_price"]=0;
$_SESSION['cart'][$id]["eng_price"]=(int)$config_ke*intval($arr['num']);
//$_SESSION['cart'][$id]["price"] = $arr['price'];
// $_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
}elseif(strlen($_SESSION['cart'][$id]["ke"]) != 0 && strlen($ke) == 0){//有刻字,去除刻字
$_SESSION['cart'][$id]["eng_price"]=0;
//$_SESSION['cart'][$id]["eng_price"]-=(int)$config_ke*intval($arr['num']);
// $_SESSION['cart'][$id]["eng_price"]-=$config_ke;
//$_SESSION['cart'][$id]["price"] = $arr['price'];
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
}elseif(strlen($_SESSION['cart'][$id]["ke"]) != 0 && strlen($ke) != 0){//有刻字,更改刻字
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
//$_SESSION['cart'][$id]["eng_price"]=0;
$_SESSION['cart'][$id]["eng_price"]=(int)$config_ke*intval($arr['num']);

$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
}
}
}

/**
* 函數名稱: getItems
* 函數功能: 取得商品數組
* 輸入參數: $id --------------- 某商品的ID
* 函數返回值: array
* 其它說明: 2004-8-19
*/
function getItems($id=null)
{
if(isset($_SESSION['cart']))
{
if($id==null)
{
//print_r($_SESSION['cart']);exit;
Return $_SESSION['cart'];
}
else
{
Return $_SESSION['cart'][$id];
}
}
}

/**
* 函數名稱: emptyItem
* 函數功能: 刪除商品
* 輸入參數: $id ----------- 商品ID
* 函數返回值: bool
* 其它說明: 2004-8-19
*/
function emptyItem($id=null)
{
if($id==null)
{
unset($_SESSION['cart']);
}
else
{
unset($_SESSION['cart'][$id]);
}
}

/**
* 函數名稱: sum
* 函數功能: 統計總價
* 輸入參數: none
* 函數返回值: int
* 其它說明: 2004-8-19
*/
function sum()
{
$total = 0;
if(isset($_SESSION['cart'])&&!empty($_SESSION['cart']))
{
foreach($_SESSION['cart'] as $key=>$val)
{
$total += $val['count'];
}
}
Return $total;
}
}

㈡ thinkphp做的session購物車,求詳細代碼。有完整例子的可以發下。非常感謝

<?php


classCartTool{
privatestatic$ins=null;
private$items=array();

finalprotectedfunction__construct(){
}

finalprotectedfunction__clone(){
}

//獲取實例
protectedstaticfunctiongetIns(){
if(!(self::$insinstanceofself)){
self::$ins=newself();
}

returnself::$ins;
}


//把購物車的單例對象放到session里
publicstaticfunctiongetCart(){
if(!isset($_SESSION['cart'])||!($_SESSION['cart']instanceofself)){
$_SESSION['cart']=self::getIns();
}

return$_SESSION['cart'];
}


/*
添加商品
paramint$id商品主鍵
paramstring$name商品名稱
paramfloat$ 商品價格
paramint$num購物數量
*/
publicfunctionaddItem($id,$name,$price,$brand,$thumb,$num=1){

if($this->hasItem($id)){//如果該商品已經存在,則直接加其數量
$this->incNum($id,$num);
return;
}

$item=array();
$item['id']=$id;
$item['name']=$name;
$item['price']=$price;
$item['brand']=$brand;
$item['thumb']=$thumb;
$item['num']=$num;

$this->items[$id]=$item;

return$this->items[$id];


}


/*
修改購物車中的商品數量
paramint$id商品主鍵
paramint$num某個商品修改後的數量,即直接把某商品的數量改為$num
*/
publicfunctionmodNum($id,$num=1){
if(!$this->hasItem($id)){
returnfalse;
}

$this->items[$id]['num']=$num;

}


/*
商品數量增加1
*/
publicfunctionincNum($id,$num=1){
if($this->hasItem($id)){
$this->items[$id]['num']+=$num;
}
}


/*
商品數量減少1
*/
publicfunctiondecNum($id,$num=1){
if($this->hasItem($id)){
$this->items[$id]['num']-=$num;
}

//如果減少後,數量為0了,則把這個商品從購物車刪掉
if($this->items[$id]['num']<1){
$this->delItem($id);
}
}


/*
判斷某商品是否存在
*/
publicfunctionhasItem($id){
returnarray_key_exists($id,$this->items);
}


/*
刪除商品
*/
publicfunctiondelItem($id){
unset($this->items[$id]);
}


/*
查詢購物車中商品的種類
*/
publicfunctiongetCnt(){
returncount($this->items);
}


/*
查詢購物車中商品的個數
*/
publicfunctiongetNum(){
if($this->getCnt()==0){
return0;
}

$sum=0;

foreach($this->itemsas$item){
$sum+=$item['num'];
}

return$sum;
}


/*
查詢購物車中商品的總金額
*/
publicfunctiongetPrice(){
if($this->getCnt()==0){
return0;
}

$price=0.0;

foreach($this->itemsas$item){
$price+=$item['num']*$item['price'];
}

return$price;
}/*
返回購物車中的所有商品
*/

publicfunctionall(){
return$this->items;
}

/*
清空購物車
*/
publicfunctionclear(){
$this->items=array();
}
}




以上是類文件,需要引入的。



$cart=CartTool::getCart();
$car_goods_list=$cart->all();//獲取商品列表

$goods_num=$cart->getNum();//商品個數

$goods_sum_price=$cart->getPrice();//總價格

$cart->addItem($goods_id,$goods_list['goods_name'],$goods_list['shop_price'],$goods_list['brand'],$goods_list['goods_thumb'],$num);//增加一件商品到購物車

$cart->clear();//清空購物車

㈢ php實現購物車都有哪些方法除了session和cookie還有別的嗎

看需求.
上面那位同學說,可以把數據直接入庫,但這個是要建立在,要有用戶登陸的情況下才能實現的.

否則,只能用cookie或者session

㈣ 請問thinkphp session購物車該怎麼做我引用十八哥視頻上講的購物車類總是報錯!

這視頻我是沒看過
不過你的問題應該是操作session不成功是吧
操作session的步驟就是
sesstion_start(); // 開啟回session
$_SESSION['key'] = 'val'; // 保存session
echo $_SESSION['key']; // 獲取答session
session_destroy(); // 銷毀session

至於在TP上面呢 可以省略開啟和銷毀
$_SESSION['key'] = 'val'; // 保存session
echo $_SESSION['key']; // 獲取session
就可以了

正常的操作是這樣 如果不行的話 把報錯貼出來

純手動 還差幾個採納升級 謝謝

㈤ 求一個php session 購物車類代碼

最好還是建一個專門的購物車表,不要用session存儲,這樣雖然方便,但是會員在其他地方登錄或者換個時間購物車內的東西就不存在了,這樣太不好啊。

㈥ php 最新的購物車session類

也可以用文件來存啊,這要看你的網站規模了。
信息放到哪只是個存儲問題,和購物車類本身沒多大關系吧。
你自己可以改造一下,改成符合你的要求嘛。
參考資料里是我兩年前的一篇,你可以參考下

㈦ 如果讓你寫購物車。你會用session嗎 - PHP進階討論

session
解決不了下次瀏覽的保存問題
cookie
不安全
最推薦的就是存資料庫
5000ip
4000單子每天貌似應該自己弄個伺服器了

㈧ php session實現購物車的原理

session_start;
然後原理就是,建立一個數組,$_SESSION['wupin'][]=選中的物品的ID,然後就可以了,如果用戶取消,就把他選擇取消的那個ID的鍵從數組里刪除就行。

㈨ php session 購物車問題

你先var_mp下$cart這個數組裡面是什麼數據,看是否存入了session
如果沒有你就應該$_SESSION['cart'] = $_POST['cart']; 還有用數組追加的函數.

㈩ 請問一下php做購物車為什麼要用SESSION來實現呢

就跟Cookie一樣,不同抄訪客存儲的數據不一樣,這些數據如果存放到資料庫中,不太方便,可以存放到radis或者SESSION中,直接存儲到cookie中的話,會產生客戶端可以篡改的問題,所以折中的話使用session算是最常規的方法。