计算机08张烁考试论文购物网站设计和代码分析.docx
- 文档编号:4047464
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:18
- 大小:135.69KB
计算机08张烁考试论文购物网站设计和代码分析.docx
《计算机08张烁考试论文购物网站设计和代码分析.docx》由会员分享,可在线阅读,更多相关《计算机08张烁考试论文购物网站设计和代码分析.docx(18页珍藏版)》请在冰豆网上搜索。
计算机08张烁考试论文购物网站设计和代码分析
购物网站设计和代码分析
计算机08(3+2)-1
张烁
目录
摘要3
一、CSS层叠样式4
二、数据库5
三、代码分析&功能介绍5
1、基本配置文件6
<1>配置文件config.php6
<2>头文件header.php6
<3>页脚文件footer.php7
<4>主页index.php8
<5>连接数据库db.php8
<6>函数functions.php9
2、显示分类及商品10
<1>bar.php10
<2>products.php11
3、未注册用户和已注册用户11
<1>添加商品到购物车addtobasket.php11
<2>察看购物车内容showcart.php13
<3>删除购物车内容delete.php14
<4>去结帐14
①填写送货地址checkout-address.php14
②付款方式checkout-pay.php20
4、管理员功能22
<1>察看订单详细adminorderdetails.php22
<2>订单确认支付adminorders.php25
四、错误分析总结28
1、禁止:
找不到SCRIPT_NAME28
2、警告:
找不到变量28
3、乱码29
五、总结29
摘要
这次我们要做的是购物车程序。
主要功能包括查看、添加和删除物品到购物车,购买商品时注册与非注册用户送货地址选择的不同,付款方式的选择,以及管理员的订单管理功能。
我还会介绍我运行调试期间遇到的问题,以及错误解决办法和总结。
[编译平台:
PHP.Designer.v7.2.0.3数据库:
MySQL5.0.9服务器:
Apache2.0.63]
一、CSS层叠样式
#bar{float:
right;//对象浮在右边
width:
140px;//宽度
background:
#eee;//背景颜色
z-index:
1;//层叠次序
padding:
10px;//设置对象四边的补丁边距
height:
100%;//高度
}
#barh1{font-size:
12px;//字体大小
text-transform:
uppercase;//转换成大写
letter-spacing:
0.3em;//设置文字间隔
}
#footer{padding:
2px2px2px2px;//设置对象四边的补丁边距
background:
#eee;
text-align:
center;//文本对齐方式
}
body{font-family:
"trebuchetms",verdana,sans-serif;//设置字体
font-size:
12px;
line-height:
1.5em;//设置行高
color:
#333;//字体颜色
background:
#ffffff;
}
二、数据库
这次的数据库结构:
所有数据表单均围绕着orders表依存orders表示关键。
这里我做的是中文数据库,用的是gbk和utf8的编码。
gbk国标大码比gb2312的码多,在数据库中所有包含中文内容的字段我都是用gbk做整理编码的。
utf8国际通用编码几乎包含所有编码,在数据库中所有未包含中文内容的字段都使用的是utf8的编码。
三、代码分析&功能介绍
下图是网站完成时主页的样子。
下面我将分四大块分别介绍其作用和核心代码
1、基本配置文件
<1>配置文件config.php
配置文件储存的是一些基本信息
$dbhost="localhost";//主机名
$dbuser="root";//数据库用户名
$dbpassword="root";//数据库用户密码
$dbdatabase="shoppingcart";//数据库名
$config_basedir="http:
//localhost/shoppingcart/";//网站主目录
$config_sitename="GO-物车";//网站名称
ini_set("display_errors","off");//临时设置服务器所有错误报告不输出
<2>头文件header.php
session_start();//回话开始
require("config.php");//调用config配置文件
$db=mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($dbdatabase,$db);//连接数据库
phpecho$config_sitename;?
>
phpecho$config_sitename;?
>//输出站点名
phpecho$config_basedir;? >">主页//输出主页超链接到网站主目录下 - phpecho$config_basedir;? >showcart.php">查看购物车/结帐//输出查看购物车/结帐超链接到showcart.php require("bar.php");//调用bar.php<返回bar.php的结果> If(isset($_SESSION['SESS_LOGGEDIN'])==TRUE)//判断用户是否登录 {echo"用户".$_SESSION['SESS_USERNAME']."已登录[ else{echo" <3>页脚文件footer.php If($_SESSION['SESS_ADMINLOGGEDIN']==1) {echo"[ }//如果管理员登陆则输出admin超链接到主目录下adminorders.php否则输出adminlogout超链接到主目录下adminlogout.php <4>主页index.php php require("header.php"); ? > ! 欢迎光临 phpecho$config_sitename;? >网站.点击的网页浏览其中之一。 我们有很多不同的产品可供选择。 php require("footer.php"); ? >//这次的主页出奇的简单只有欢迎信息 <5>连接数据库db.php php require("config.php"); $db=mysql_connect($dbhost,$dbuser,$dbpassword); mysql_select_db($dbdatabase,$db); ? >//为了省去重复输入的时间把链接数据库的代码单独写到一个文件里用时直接调用就行了 <6>函数functions.php 同样这个文件的目的也是为了省去重复输入的麻烦 这个文件储存着几个函数主要用途处理商品组的一些信息包括查询商品信息的查询与输出 if($_SESSION['SESS_ORDERNUM']) {if($_SESSION['SESS_LOGGEDIN'])//登陆状态判断 {mysql_query("SETNAMESGBK");//查询编码类型为gbk $custsql="SELECTid,statusfromordersWHEREcustomer_id=".$_SESSION['SESS_USERID']."ANDstatus<2;"; $custres=mysql_query($custsql); $custrow=mysql_fetch_assoc($custres);//查询id所对应orders表中的status字段customer_id等于会话中的用户idstatus<2 //查询订单所对应的用户身份判定 if(($itemsrow['image'])==' echo"欢迎光临!
";//没有商品图片则输出图片相对目录下/productimages/dummy.jpg
}
else{
echo"
}
echo"
echo"
echo"
echo"
echo"
id=".$itemsrow['itemid']."'>X]
id=".$itemsrow['itemid']
echo"";
$total=$total+$quantitytotal;//总价+单件总价赋值给总价
2、显示分类及商品
<1>bar.php
$catsql="SELECT*FROMcategories;";
$catres=mysql_query($catsql);//查询分类
while($catrow=mysql_fetch_assoc($catres)
{echo"
id=".$catrow['id']."'>".$catrow['name']."
id=分类id
}
<2>products.php
$validid=pf_validate_number($_GET['id'],"redirect",$config_basedir>;//判断是否得到id否则重定向到主目录下
$prodcatsql="SELECT*FROMproductsWHEREcat_id=".$_GET['id'].";";
$prodcatres=mysql_query($prodcatsql);
$numrows=mysql_num_rows($prodcatres);//在商品里查询于得到id相同的分类id
3、未注册用户和已注册用户
<1>添加商品到购物车addtobasket.php
If($_POST['submit'])//判断是否提交表单
{是
If($_SESSION['SESS_ORDERNUM'])//如果注册了订单id
{$itemsql="INSERTINTOorderitems(order_id,product_id,quantity)VALUES("
.$_SESSION['SESS_ORDERNUM'].",".$validid.","
.$_POST['amountBox'].")";
mysql_query($itemsql);
}//插入到orderitems表订单id商品id商品数量
else
{
If($_SESSION['SESS_LOGGEDIN'])//如果用户登录
{mysql_query("SETNAMESGBK");
$sql="INSERTINTOorders(customer_id,registered,date)VALUES("
.$_SESSION['SESS_USERID'].",1,NOW())";//插入到orders表用户id是否注册现在时间
mysql_query($sql);
session_register("SESS_ORDERNUM");//注册订单id
$_SESSION['SESS_ORDERNUM']=mysql_insert_id();
$itemsql="INSERTINTOorderitems(order_id,product_id,quantity)VALUES("
.$_SESSION['SESS_ORDERNUM'].",".$validid.",".$_POST['amountBox'].")";
mysql_query($itemsql);
}//插入到orderitems表订单id商品id商品数量
else
{mysql_query("SETNAMESGBK");
$sql="INSERTINTOorders(registered,date,session)VALUES("."0,NOW(),'".session_id()."')";
mysql_query($sql);//插入到orders表是否注册现在时间会话id
$_SESSION['SESS_ORDERNUM']=mysql_insert_id();
$itemsql="INSERTINTOorderitems(order_id,product_id,quantity)VALUES("
.$_SESSION['SESS_ORDERNUM'].",".$validid.","
.$_POST['amountBox'].")";
mysql_query($itemsql);//插入到orderitems表订单id商品id商品数量
}
}
$totalprice=$prodrow['price']*$_POST['amountBox'];//总价等于单价*值
Header("Location:
".$config_basedir."showcart.php");//重定向到主目录下showcart.php
}
<2>察看购物车内容showcart.php
if(isset($_SESSION['SESS_ORDERNUM'])==TRUE){//如果会话中有订单id
mysql_query("SETNAMESGBK");
$sql="SELECT*FROMorderitemsWHEREorder_id=".$_SESSION['SESS_ORDERNUM'].";";
$result=mysql_query($sql);
$numrows=mysql_num_rows($result);
//查询所对应的订单商品
<3>删除购物车内容delete.php
$validid=pf_validate_number($_GET['id'],"redirect",$config_basedir."showcart.php");
//是否得到id否则重订向到showcart.php
$itemsql="SELECT*FROMorderitemsWHEREid=".$_GET['id'].";";
$itemres=mysql_query($itemsql);
$numrows=mysql_num_rows($itemres);
//查询得到id所对应orderitems里相同的id
$sql="DELETEFROMorderitemsWHEREid=".$_GET['id'];
mysql_query($sql);//删除orderitems里与得到id相同的id的字段
<4>去结帐
1 填写送货地址checkout-address.php
$statussql="SELECTstatusFROMordersWHEREid=".$_SESSION['SESS_ORDERNUM'];
$statusres=mysql_query($statussql);
$statusrow=mysql_fetch_assoc($statusres);
$status=$statusrow['status'];
//查询orders表里status字段id=当前会话中订单数
if($_POST['submit'])//是否点击按钮
{
if($_SESSION['SESS_LOGGEDIN'])//是否登陆
{
if($_POST['addselecBox']==2)//如果addselecBox=2
{
if(empty($_POST['forenameBox'])||
empty($_POST['surnameBox'])||
empty($_POST['add1Box'])||
empty($_POST['add2Box'])||
empty($_POST['add3Box'])||
empty($_POST['postcodeBox'])||
empty($_POST['phoneBox'])||
empty($_POST['emailBox']))
{//如果其中一个是空
header("Location:
".$basedir."checkout-address.php?
error=1");
exit;//重定向到checkout-address.php?
error=1
}
$addsql="INSERTINTOdelivery_addresses(forename,surname,add1,add2,add3,postcode,phone,email)//插入到delivery_addresses
VALUES('"
.strip_tags(addslashes($_POST['forenameBox']))."','"
.strip_tags(addslashes($_POST['surnameBox']))."','"
.strip_tags(addslashes($_POST['add1Box']))."','"
.strip_tags(addslashes($_POST['add2Box']))."','"
.strip_tags(addslashes($_POST['add3Box']))."','"
.strip_tags(addslashes($_POST['postcodeBox']))."','"
.strip_tags(addslashes($_POST['phoneBox']))."','"
.strip_tags(addslashes($_POST['emailBox']))."'>";
//插入字段所对应的值
mysql_query($addsql);
$setaddsql="UPDATEordersSETdelivery_add_id=".mysql_insert_id().",status=1WHEREid=".$_SESSION['SESS_ORDERNUM'];
mysql_query($setaddsql);
header("Location:
".$config_basedir."checkout-pay.php");
}
else
{
$custsql="UPDATEordersSETdelivery_add_id=0,status=1WHEREid=".$_SESSION['SESS_ORDERNUM'];
mysql_query($custsql);
header("Location:
".$config_basedir."checkout-pay.php");
}
}
else
{
if(empty($_POST['forenameBox'])||
empty($_POST['surnameBox'])||
empty($_POST['add1Box'])||
empty($_POST['ad
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 08 考试 论文 购物 网站 设计 代码 分析