php购物车实例(1/5)

 更新时间:2016年11月25日 16:27  点击:1793
这里又提供一款php购物车实例代码,这是一款适合种位要开发商城或购物系统参考的开发实例了,告诉你如果增加商品到购物并删除,与购物车的数据库设计实例。

inventory表

 代码如下 复制代码

create table inventory (
  product tinytext not null,
  quantity tinytext not null,
  id int(4) default '0' not null auto_increment,
  description tinytext not null,
  price float(10,2) default '0.00' not null,
  category char(1) default '' not null,
  key id (id),
  primary key (id),
  key price (price)
);
insert into inventory values ('硬盘','5','1','80g','5600','1');
insert into inventory values ('cpu','12','2','p4-2.4g','6600','1');
insert into inventory values ('dvd-rom','7','3','12x','2000','1');
insert into inventory values ('主板','3','4','asus','5000','2');
insert into inventory values ('显示卡','6','5','64m','4500','1');
insert into inventory values ('刻录机','4','6','52w','3000','1');

shoping表

create table shopping (
  session tinytext not null,
  product tinytext not null,
  quantity tinytext not null,
  card tinytext not null,
  id int(4) default '0' not null auto_increment,
  key id (id),
  primary key (id)
);

shoper表

create database shopper;
use shopper;
create table shopping (
  session tinytext not null,
  product tinytext not null,
  quantity tinytext not null,
  card tinytext not null,
  id int(4) default '0' not null auto_increment,
  key id (id),
  primary key (id)
);
create table inventory (
  product tinytext not null,
  quantity tinytext not null,
  id int(4) default '0' not null auto_increment,
  description tinytext not null,
  price float(10,2) default '0.00' not null,
  category char(1) default '' not null,
  key id (id),
  primary key (id),
  key price (price)
);
insert into inventory values ('硬盘','5','1','80g','5600','1');
insert into inventory values ('cpu','12','2','p4-2.4g','6600','1');
insert into inventory values ('dvd-rom','7','3','12x','2000','1');
insert into inventory values ('主板','3','4','asus','5000','2');
insert into inventory values ('显示卡','6','5','64m','4500','1');
insert into inventory values ('刻录机','4','6','52w','3000','1');
*/

 

本程序分为简单的单文件重名,加上getfile就可以实现文件批量重命名了,$path为要你重命名的目录,它可以把指定目录下所指定文件类型的议论后次批量重命名哦。非常好用。

*/

 代码如下 复制代码

$format ='php';
$path ='www.111cn.net/';
$files = getfile($path,$format);

foreach( $files as  $v )
{
 $tv = basename($v);
 list($name,$ext) = explode('.',$tv);
 $newname =$path.time().mt_rand(1,10000).'.'.$ext;
 if(rename($v,$newname))
 {
  echo '成功将'.$v.'重命名'.$newname.'<br />'; 
 }
}

function getfile($path,$format)
{
 $dirs    = array();
 foreach(glob("$path*") as $d)
 {
  $tmp = explode('.',$d);
  $k = end($tmp);
  if(is_file($d) && ($k ==strtolower($format) ))
  {
   $dirs[]    = $d;
  }
 }
 return $dirs;
}

/*
成功将rename/12819320034756.php重命名rename/12819402065296.php
成功将rename/12819320036890.php重命名rename/12819402067216.php
成功将rename/12819320037133.php重命名rename/12819402067656.php

本站原创教程,坟载注明来源http://www.111cn.net/phper/php.html
*/
?>

 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title> php教程文件上传代码</title>
</head>

<body>

<form method="post" enctype="multipart/form-data" action ="uploads.php">
<input type = "file" name="uploadedfile" size="30">
<input type = "hidden" name = "max_file_size" value="100000">
<input type = "submit" value = "上传文件">
</form>

</body>
</html>

<?php

 代码如下 复制代码
if ($uploadedfile<>"none") {
 if (!copy($uploadedfile, "$uploadedfile_name")) {
 echo "<font face='arial' size='2'> $name 文件上传失败 ,<br>";
 echo "也可能是文件太大<br>";
 echo "请使用 back 按键再试一次";
 } else {
 echo "<font face='arial' size='2'>文件上传成功 !<br>";
 echo "文件类型:$uploadedfile_type <br>";
 echo "文件大小:$uploadedfile_size <br>";
 echo "文件名称:$uploadedfile_name <br>";
 echo "文件说明:$description <br>";
 }
}
/*
这是一款很实例的 php文件上传代码   程序,拿着就能用的。
*/

?>

这是一款完美的php文件上传代码,图片上传成功后并自动给图片增加上水印,这样很好的快速的提高的了要手工一张张增加水印效果。
 代码如下 复制代码

 function upload($uploadfile,$watermark=1,$watertype=1,$content){
  foreach($uploadfile['name'] as $key=>$name) {  //多文件上传函数
   uploadall($uploadfile,$key,$watermark,$watertype,$content);
  }
 }
 function uploadall($uploadfile,$i,$watermark,$watertype,$content) {
  $watermark=$watermark;         //是否附加水印(1为加水印,其他为不加水印);
  $watertype=$watertype;         //水印类型(1为文字,2为图片)
  $watercontent=$content;         //水印的内容
  if(empty($uploadfile['name'][$i])) {
   die("未选择文件上传");
  }
  if($uploadfile['error'][$i] == 2) {   //验证html判断结果
   die("上传的文件太大了");
  }
  $allow_filemaxsize = 2048000;    // 2m
  $filesize = $uploadfile['size'][$i];
  if($filesize > $allow_filemaxsize) {
   die("上传的文件太大了");
  }
  $allow_filetypes = array("jpeg", "gif", "png","jpg","pjpeg");//允许上传的文件统一资源类型 mimetype
  $allow = false;        //默认都不允许
  $mimetype = $uploadfile['type'][$i];  //上传文件的mime文件类型
  foreach($allow_filetypes as $t) {
   if(strpos($mimetype, $t) !== false) {
    $allow = true;      //找到了符合上传条件的文件类型
    break;
   }
  }
  if($allow == false) {
   die("上传的文件类型不被允许");
  }
  $result = is_uploaded_file($uploadfile['tmp_name'][$i]);   //判断是否为上传动作产生的
  if(!$result) {
   die("上传的文件有误");
  }
  $uploaddir = "img/";       //上传文件保存目录
  if(!file_exists($uploaddir)) mkdir($uploaddir, 0777, true);//若上传保存目录不存在,则递归创建
  /**重命名文件**/
  $filetype = explode(".", $uploadfile['name'][$i]);
  $filetype = array_pop($filetype);
  $uploadfilename = time().".".$filetype;
  $_session['filename'] = $uploadfilename;
  //end
  $result = move_uploaded_file($uploadfile['tmp_name'][$i], $uploaddir.$uploadfilename);
  if($result) {
   echo  "文件上传成功";
  }else{
   switch($uploadfile['error'][$i]) {
    case 1:return "上传的文件超出了php.ini中设定的最大值";break;
    case 2:return "上传的文件超出了html中设定的最大值";break;
    case 3:return "文件只有部分被上传";break; 
    case 4;return "没有文件被上传";break; 
    default:die("文件上传失败");  
   }
  }
  if($watermark==1) {
   $iinfo=getimagesize($uploaddir.$uploadfilename);  //获取图片的相关信息,得到数组
   $nimage=imagecreatetruecolor($iinfo[0],$iinfo[1]);
   $white=imagecolorallocate($nimage,255,255,255); //设置背景颜色为白色
   $black=imagecolorallocate($nimage,0,0,0);  //设置背景颜色为黑色
   $red=imagecolorallocate($nimage,255,0,0);  //设置背景颜色为红色
   imagefill($nimage,0,0,$white);     //背景填充为白色
   switch ($iinfo[2]) {
    case 1:
    $simage =imagecreatefromgif($uploaddir.$uploadfilename);
    break;
    case 2:
    $simage =imagecreatefromjpeg($uploaddir.$uploadfilename);
    break;
    case 3:
    $simage =imagecreatefrompng($uploaddir.$uploadfilename);
    break;
    case 6:
    $simage =imagecreatefromwbmp($uploaddir.$uploadfilename);
    break;
    default:
    die("不支持的文件类型");
    exit;
   }
   imagecopy($nimage,$simage,0,0,0,0,$iinfo['0'],$iinfo['1']);
   switch($watertype) {
    case 1:             //加水印字符串
    imagestring($nimage,5,$iinfo['0']/2-50,$iinfo['1']-30,$watercontent,$black);
    break;
    case 2:            //加水印图片
    $simage1 =imagecreatefromgif($watercontent);
    $size = getimagesize($watercontent);
    imagecopy($nimage,$simage1,$iinfo['0']/2+50,$iinfo['1']-100,0,0,$size[0],$size[1]);
    imagedestroy($simage1);
    break;
   }

   switch ($iinfo[2]) {
    case 1:
    imagejpeg($nimage, $uploaddir.$uploadfilename); //将图像$nimage以$destination文件名创建一个jpeg的格式文件
    break;
    case 2:
    imagejpeg($nimage, $uploaddir.$uploadfilename);
    break;
    case 3:
    imagepng($nimage, $uploaddir.$uploadfilename);
    break;
    case 6:
    imagewbmp($nimage, $uploaddir.$uploadfilename);
    break;
   }
   imagedestroy($nimage);    //覆盖原上传文件
   imagedestroy($simage);
  }
}
if(@$_get['act'] == "insert") {    //未作参数校验
     //该函数的四个参数分别是:上传控件的name值;是否加水印(1为加,其他数字为不佳);
     //水印的类型(1为字符串,2为图片);水印的内容,字符串时写数据,图片时写图片的地址;
 $picture = upload($_files['picture'],1,2,"img/watermark.gif");//上传文件,并返回上传后的文件路径名

}

?>

上传代码

 代码如下 复制代码

<form method="post" action="" enctype="multipart/form-data">
 <table border="1" cellpadding="5" cellspacing="0">
  <tr>
   <td>产品图片:</td>
   <td><input type="hidden" name="max_file_size" value="1024000">
    <input type="file" name="picture[]">
   </td>
  </tr>
  <tr>
   <td colspan="2" align="center"><input type="submit" value="提交"></td>
  </tr>
 </table>
</form>

 代码如下 复制代码
$file            =        "data.dat";        //数据文件
if(file_exits($file)){                        //容错处理,防止无数据文件存在
    $fp=fopen($file,"w+");
    fclose($fp);
    unset($fp);
}
$listnumber        =        20;            //每页显示条数
$fp            =        file($file);        //读取数据到内容中
$number            =        count($fp);        //计算总数据量
$pagenumber        =        floor($number/$listnumber)+1;
if($number<1){
    print "暂时无记录,欢迎留言";
    /*+--------------------------------+
          |在这里打印form表单或连接到表但的|
          | url,               |
          +--------------------------------+*/
}else{
    if(empty($_post["page"])){                //这段if...else...是为了兼容php4.20的默认设置,防止出现无效的全局变量而写的
        $page        =    0;            //因为是从数据文本读出来的,保存在数组中,有个o下标
    }else{
        $page        =    $_post["page"]
    }
    if($page<0 || $page>pagenumber){            //检错处理,当页面参数跳出总页面或小于首页(0)的时候,将返回到第一页
        $page=0;
    }
    $startnote    =    $page*$listnumber;        //开始记录位置
    $endnote    =    $startnote+$listnumber;        //结束记录位置
    //for($int_a=$startnote;$int_a<$endnote;$int_a++){    //排序显示类似asc模式
    pirnt "<table>"
    for($int_a=$endnote;$int_a>=$startnote;$int_a--){    //排序显示类似desc模式
        $info=explode(" ",$fp[$int-a]);        //切割数据获得每条记录的详细数据我这里是用了一个tab键分割
        print "<tr><td>用户:$info[1] 标题$info[2] 发言内容:$info[3] 发布时间:$info[4] ip:$info[5]";
    }
    $prevpage    =    $page-1;            //上一页的page数
    $nextpage    =    $page+1;            //下一页的page数
    print "<tr><td>
    <a href="$_server["php_self"]?page=0">首页</a>
    <a href="$_server["php_self"]?page=$prevpage">上一页</a>
    <a href="$_server["php_self"]?page=$nextpage">下一页</a>
    <a href="$_server["php_self"]?page=$pagenumber">尾页</a>
    </table>";                        //这里您可以直接将页面的检测加到这里,那样给别人看的是舒服的,但是效果是一样的
                                //例如:这里有可能出现20页出现        <a href="index.php?page=21">下一页</a>    或<a href="index.php?page=-1">


}

[!--infotagslink--]

相关文章

  • ASP.NET购物车实现过程详解

    这篇文章主要为大家详细介绍了ASP.NET购物车的实现过程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • JS实现购物车中商品总价计算

    这篇文章主要为大家详细介绍了JS实现购物车中商品总价的计算 ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-07
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • React列表栏及购物车组件使用详解

    这篇文章主要为大家详细介绍了React列表栏及购物车组件使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-28
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • PHP+jQuery+Ajax实现多图片上传效果

    今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
  • 快速理解MySQL中主键与外键的实例教程

    主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是 thread.php&#63;id=1 表示我要访问的是帖子...2015-11-24
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • vue实现简单购物车案例

    这篇文章主要为大家详细介绍了vue实现简单购物车案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-01
  • jQuery实现加入购物车飞入动画效果

    HTML 首先载入jQuery库文件和jquery.fly.min.js插件。复制代码 代码如下: <script src="jquery.js"></script> <script src="jquery.fly.min.js"></script> 接着,将商品信息html结构布置好,本例中,我们用四个商品并排...2015-03-15
  • yii添删改查实例

    一、数据访问对象 (DAO)YiiDAO 基于 PHP Data Objects (PDO) 构建。它是一个为众多流行的DBMS提供统一数据访问的扩展,这些 DBMS 包括MySQL, PostgreSQL 等等。因此,要使用 Yii DAO,PDO 扩展和特定的 PDO 数据库驱动(例如...2015-11-24
  • PHP如何使用cURL实现Get和Post请求

    这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11
  • 谈谈PHP中相对路径的问题与绝对路径的使用

    经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24