当前位置:首页 » 网购平台 » 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算是最常规的方法。