php 利用session 实现最简单的方式实现购物车类
class cart
{
/**
* 函数名称: addItem
* 函数功能: 添加商品
* 输入参数: $data ------------- 商品数组
* 函数返回值: none
* 其它说明: 因为数据是记录在session中,所以不用返回
*/
function addItem($data){
global $config_kezhi;
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]["kezhi"])>0){//没有刻字,加入刻字
$_SESSION['cart'][$key]["eng_price"]=0;
$_SESSION['cart'][$key]["eng_price"]=(int)$config_kezhi*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_kezhi($id,$kezhi)
// {
// global $config_kezhi;
// $arr = $this->getItems($id);
// // 如果商品存在就加数量和价格
// if($this->_isExists($id))
// {
// $_SESSION['cart'][$id]["kezhi"] = $kezhi;
// $_SESSION['cart'][$id]['price'] = $arr['price'] + $config_kezhi;
// $_SESSION['cart'][$id]['count'] = round($_SESSION['cart'][$id]['price']*intval($arr['num']),2);
// }
// }
function modItem_kezhi($id,$kezhi,$kezhi1="",$kezhi2="")
{
global $config_kezhi;
$arr = $this->getItems($id);
// 如果商品存在就加数量和价格
//var_dump($_SESSION['cart']);
// die();
if($this->_isExists($id))
{
if(strlen($_SESSION['cart'][$id]["kezhi"]) == 0 && strlen($kezhi) != 0){//没有刻字,加入刻字
//$arr['price'] += $config_kezhi;
$_SESSION['cart'][$id]["eng_price"]=0;
$_SESSION['cart'][$id]["eng_price"]=(int)$config_kezhi*intval($arr['num']);
//$_SESSION['cart'][$id]["price"] = $arr['price'];
// $_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
$_SESSION['cart'][$id]["kezhi"] = $kezhi;
$_SESSION['cart'][$id]["kezhi1"] = $kezhi1;
$_SESSION['cart'][$id]["kezhi2"] = $kezhi2;
///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
}elseif(strlen($_SESSION['cart'][$id]["kezhi"]) != 0 && strlen($kezhi) == 0){//有刻字,去除刻字
$_SESSION['cart'][$id]["eng_price"]=0;
//$_SESSION['cart'][$id]["eng_price"]-=(int)$config_kezhi*intval($arr['num']);
// $_SESSION['cart'][$id]["eng_price"]-=$config_kezhi;
//$_SESSION['cart'][$id]["price"] = $arr['price'];
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
$_SESSION['cart'][$id]["kezhi"] = $kezhi;
$_SESSION['cart'][$id]["kezhi1"] = $kezhi1;
$_SESSION['cart'][$id]["kezhi2"] = $kezhi2;
}elseif(strlen($_SESSION['cart'][$id]["kezhi"]) != 0 && strlen($kezhi) != 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_kezhi*intval($arr['num']);
$_SESSION['cart'][$id]["kezhi"] = $kezhi;
$_SESSION['cart'][$id]["kezhi1"] = $kezhi1;
$_SESSION['cart'][$id]["kezhi2"] = $kezhi2;
}
}
}
/**
* 函数名称: 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;
}
}
session_start();
$img_width=70; //先定义图片的长、宽
$img_height=28;
$num_array=range(0,9);
$small_char_array=range('a','z');
$big_char_array=range('A','Z');
$myarray=array_merge($num_array,$small_char_array,$big_char_array);
$mystring=$myarray[mt_rand(0,61)].$myarray[mt_rand(0,61)].$myarray[mt_rand(0,61)].$myarray[mt_rand(0,61)];
//exit($mystring);
//unset($_SESSION['shuzi']);
$_SESSION['shuzi'] = $mystring;
$aimg = imagecreate($img_width,$img_height); //生成图片
imagecolorallocate($aimg, 255,255,255); //图片底色,ImageColorAllocate第1次定义颜色PHP就认为是底色了
$black = imagecolorallocate($aimg,200,200,200); //定义需要的黑色
imagerectangle($aimg,0,0,$img_width-1,$img_height-1,$black);//先成一黑色的矩形把图片包围
//下面该生成雪花背景了,其实就是在图片上生成一些符号
for ($i=1; $i<=100; $i++) { //先用100个做测试
imagestring($aimg,1,mt_rand(1,$img_width),mt_rand(1,$img_height),"*",imageColorAllocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
//其实也不是雪花,就是生成*号而已。为了使它们看起来"杂乱无章、5颜6色",就得在1个1个生成它们的时候,让它们的位置、颜色,甚至大小都用随机数,rand()或mt_rand都可以完成。
}
//上面生成了背景,现在就该把已经生成的随机数放上来了。道理和上面差不多,随机数1个1个地放,同时让他们的位置、大小、颜色都用成随机数~~
//为了区别于背景,这里的颜色不超过200,上面的不小于200
imagestring($aimg,5,mt_rand(5,35),mt_rand(5,$img_height/2),$mystring,imageColorAllocate($aimg,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
Header("Content-type: image/png"); //告诉浏览器,下面的数据是图片,而不要按文字显示
ImagePng($aimg); //生成png格式。。。嘿嘿效果蛮像回事的嘛。。。
ImageDestroy($aimg);
class CreateHtml{
/*function mkdir($prefix= 'article' ){
$y = date('Y');
$m = date('m');
$d = date('d');
$p=DIRECTORY_SEPARATOR;
$filePath='article'.$p.$y.$p.$m.$p.$d;
$a=explode($p,$filePath);
foreach ($a as $dir){
$path.=$dir.$p;
if(!is_dir($path)){ //echo '没有这个目录'.$path;
mkdir($path,0755);
}
}
return $filePath.$p;
}*/
function start(){
ob_start();
}
function end($name){
$info = ob_get_contents();
$fileId = $name;
$postfix = '.html';
//$path = $this->mkdir($prefix= 'article');
$fileName = $fileId.$postfix;
//$file=fopen($path.$fileName,'w+');
$file=fopen($fileName,'w+');
fwrite($file,$info);
fclose($file);
ob_end_flush();
}
}
?>
function listDir($dir_path)
{
if(is_dir($dir_path)){
if($dir_file=opendir($dir_path)){
while(($dir_list=readdir($dir_file))!==false)
{
if($dir_list!="." && $dir_list!="..")
{
$dirs = explode('/', $dirName);
$dir='';
foreach ($dirs as $part) {
$dir.=$part.'/';
if (!is_dir($dir) && strlen($dir)>0 && !is_file($dirName))
{
mkdir($dir, $rights);
echo "$dirName<br/>";
}
}
}
}
}else{
echo($dir_path);
}
}else{
echo($dir_path);
}
}
本站原创www.111cn.net
//
function GetAlabNum($fnum)
{
$nums = array("0","1","2","3","4","5","6","7","8","9","+","-","%",".");
$fnums = "0123456789+-%.";
for($i=0;$i<count($nums);$i++){
if($nums[$i]==$fnum) return $fnums[$i];
}
return $fnum;
}
相关文章
PHP session_start()很慢问题分析与解决办法
本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25- 这篇文章主要为大家详细介绍了ASP.NET购物车的实现过程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
PHP分布式框架如何使用Memcache同步SESSION教程
本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25- 这篇文章主要为大家详细介绍了JS实现购物车中商品总价的计算 ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-07
- 这篇文章主要介绍了C#中的session用法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
Python3使用Selenium获取session和token方法详解
这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下...2021-02-17- 这篇文章主要为大家详细介绍了React列表栏及购物车组件使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-28
- session和cookie是网站浏览中较为常见的两个概念,也是比较难以辨析的两个概念,但它们在点击流及基于用户浏览行为的网站分析中却相当关键。基于网上一些文章和资料的参阅,及作者个人的应用体会,对这两个概念做一个简单的阐述...2013-09-11
- session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦。使用session保存页面登录信息1、数据库连接...2015-10-21
- 这篇文章主要为大家详细介绍了vue实现简单购物车案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-01
- 这篇文章主要介绍了Vue使用axios引起的后台session不同操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
- HTML 首先载入jQuery库文件和jquery.fly.min.js插件。复制代码 代码如下: <script src="jquery.js"></script> <script src="jquery.fly.min.js"></script> 接着,将商品信息html结构布置好,本例中,我们用四个商品并排...2015-03-15
- 在购物网站中,加入购物车的功能是必须的功能,有的网站在用户点击加入购物车按钮时,就会出现该商品从点击出以抛物线的动画相似加入购物车,这个功能看起来非常炫,对用户体验也有一定的提高。下面介绍基于jquery fly插件实现加入购物车抛物线动画效果...2016-04-06
- PHP的session功能,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便大家查阅。 1. 错误提示 引用 代...2016-11-25
- 要设置php生存有效时间我们可以利用session_set_cookie_params函数或修改php.ini文件哦,下面小编来介绍一下。 第一种方法:session_set_cookie_params 函数原型 voi...2016-11-25
- 对于大部分B2C网站来说,购物车是网站的咽喉之地,订单是白花花的银子,所有银子都必然流经购物车,购物车不能有失。优秀的购物车设计至少需要完成两项使命:一是方便用户多买...2016-09-20
- 这篇文章主要介绍了jQuery使用cookie与json简单实现购物车功能的方法,介绍了jQuery实现购物车的步骤与关键代码,需要的朋友可以参考下...2016-04-18
jQuery ajax全局函数处理session过期后的ajax跳转问题
这篇文章主要介绍了基于jQuery的全局ajax函数处理session过期后的ajax操作的相关资料,需要的朋友可以参考下...2016-06-12- 商品加入购物车链接地址为:[!--news.url--]e/ShopSys/doaction.php?enews=AddBuycar&classid=[!--classid--]&id=[!--id--]...2015-12-30
jsp使用sessionScope获取session案例详解
这篇文章主要介绍了jsp使用sessionScope获取session案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...2021-08-29