基于php+MySQL电脑外设商城网站 毕业设计-附源码271538
php电脑外设商城网站
摘 要
随着Internet的使用越来越广泛,在传统的商业模式中,对于电脑等商品,人们习惯于到各种商家店铺购买。然而在快节奏的新时代中,人们不一定能为购买电脑腾出时间,更不会耐心挑选自己想要的电脑。所以设计一个电脑外设商城,既是迎合电子商务的大潮流,也是传统电脑行业的一个突破口,可以给传统电脑行业带来转变和机遇。
电脑外设商城主要是提供给用户一个购买电脑的平台,通过价格优势吸引众多消费者来购买,实现正常运营。本文主要是采用PHP语言、Mysql数据库、Apache服务器作为开发平台,系统采用B/S结构进行开发,完成一个电脑外设商城。目标是实现一个以销售为中心的计算机系统,构建用户信息与账号,账号与订单信息有机结合的业务系统。
关键词:PHP语言;销售系统;Mysql数据库
PHP computer peripheral mall website
ABSTRACT
With the more and more extensive use of the Internet, in the traditional business model, people are used to buying goods such as computers in various shops. However, in the fast-paced new era, people may not be able to make time for buying computers, let alone patiently choose the computers they want. Therefore, designing a computer peripheral mall is not only to meet the general trend of e-commerce, but also a breakthrough in the traditional computer industry, which can bring changes and opportunities to the traditional computer industry.
The computer peripheral mall is mainly to provide users with a platform to buy computers, attract many consumers to buy through price advantages, and realize normal operation. This paper mainly uses PHP language, MySQL database and Apache server as the development platform. The system is developed with B / S structure to complete a computer peripheral mall. The goal is to realize a sales centered computer system and build a business system with the organic combination of user information and account number, account number and order information.
Keywords: PHP language; Sales system; Mysql database
目 录
第1章 绪论
1.1研究背景
1.2研究意义
1.3系统目标
1.4本文的结构
第2章 关键技术介绍
2.1开发环境介绍
2.2统一建模语言
2.3 PHP技术
2.4 Mysql简介
第3章 系统分析
3.1可行性分析
3.2功能需求分析
3.3用例分析
3.4数据流分析
3.5数据字典
第4章 系统设计
4.1结构设计
4.2功能设计
4.3数据库设计
第5章 系统详细设计
5.1个人信息管理模块
5.2登录模块
5.3商品浏览模块
5.5售后申请模块
5.6购买商品模块
5.7系统用户管理模块
5.8公告管理模块
5.9商品管理模块
5.10订单管理模块
5.11订单生成模块
第6章 系统测试
6.1测试目的
6.2测试用例
第7章 结论
参考文献
致 谢
本系统是针对企业面临的困境与现状,为方便消费者的购买以及将线上与线下更好的结合在一起,利用相关的技术所设计出的[3]。
(1)关于电子商务的法律法规不完善。无良商家肆无忌惮的通过网络售卖假冒伪劣产品,以假乱真,欺骗消费者。
(2)网络安全技术人才紧缺。目前,很多销售系统被黑客攻击甚至偷取信息、钱财等案件时有发生。
(3)网络宣传不到位。目前很多企业开通了网络销售系统,但在消费者中知名度不高[6]。
对于典型的数据库系统,尤其是对于像电脑外设商城这样的数据流量特别大的网络系统,必须要满足使用方便、操作灵活等要求。本系统在设计时应该满足以下几个目标
(1)采用人机对话的操作方式,界面美观、友好,信息查询灵活、方便,数据存储准确、安全可靠;
2.操作系统方案:Windows 7(旗舰版)操作系统,该系统可以兼容需要的软件,并且具有良好的运行速度,界面良好。
3.后台数据库:选用Mysql。Mysql旨在通过数据库加密、更加安全的默认设置、加强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供最高级别的安全性。
2.3.1PHP技术
PHP是一类网页技术,产生网页的处理逻辑,支持可重用的组件设计,使基于Web的应用程序开发变得容易[9]。具有如下几个优点。
2.3.2 JavaScript脚本
2.3.3 Ajax技术
2.3.4 Apache服务器简介
本系统操作简单,易理解。电脑外设商城与大部分电子商务系统的操作流程类似,避免了用户学习使用系统的时间和负担。
3.1.1操作可行性
3.1.2技术可行性
3.1.3经济可行性
根据条件需要,系统结构主要由二大用户组成。一是买家组成的买家用户,二是管理员用户。
1.管理员主要负责系统管理、商品信息管理、商品类别管理、用户信息管理、订单管理,下图所示描述管理员的用例。
图3-1管理员用例图
2.买家用户主要使用系统的在线购买业务,下图所示为买家用户用例图。
图3-2买家用例图
3.4数据流分析
数据流图的设计主要是由于系统目前功能还没有确定,可以先描述可能要使用到的功能内容,并且向用户了解“系统从外界接受什么数据”和“系统向外界送出什么数据”等信息,根据用户所给的答复进行设计数据流图。
如下为系统的0层数据流图,系统用户分为管理员和普通用户。
图3-4系统数据流图(0层)
如下图所示为系统1层数据流图。
图3-5系统数据流图(1层)
电脑外设商城第二层数据流图主要详细反应各功能模块对应的操作与数据进行交互的原理。并且更详细的显示出各角色对功能模块操作的数据流向,让开发人员能了解该系统的开发方向,能够更准确的开发出系统模型。
将商品信息维护进行细化得到商品信息管理二层数据流程图,如下图所示。
图3-6商品管理数据流图(2层)
将订单信息管理进行细化得到订单信息管理二层数据流程图,如下图所示。
图3-7订单管理数据流图(2层)
下表描述了用户信息的数据流、数据来源、数据去向和数据流组成的词条。
表3-1用户信息描述
数据流 |
用户信息 |
数据流来源 |
Mysql数据库中用户信息表,用户详细信息表 |
数据去向 |
系统界面,用户信息管理界面 |
数据流组成 |
用户名、用户密码、添加时间、编号 |
下表描述了购物车信息的数据流、数据来源、数据去向和数据流组成的词条。
表3-2购物车信息描述
数据流 |
购物车信息 |
数据流来源 |
Mysql数据库中购物车表,购物车详细信息表 |
数据去向 |
购物车界面 |
数据流组成 |
购物车ID、用户ID、商品ID、数量 |
下表描述了订单信息的数据流、数据来源、数据去向和数据流组成的词条。
表3-3订单信息描述
数据流 |
订单信息 |
数据流来源 |
Mysql数据库中订单表,订单详情表 |
数据去向 |
用户订单界面,订单管理界面 |
数据流组成 |
用户ID、订单ID、商品ID、下单时间、订单金额 |
下表描述了商品类别的数据流、数据来源、数据去向和数据流组成的词条。
表3-4商品类别信息描述
数据流 |
商品类别信息 |
数据流来源 |
Mysql数据库中商品类别表、商品详情表 |
数据去向 |
商品详情界面、购物车界面、商品类别管理界面 |
数据流组成 |
商品类别名 |
下表描述了商品管理的数据流、数据来源、数据去向和数据流组成的词条。
表3-5商品信息描述
数据流 |
商品信息 |
数据流来源 |
Mysql数据库中商品表、商品类别表 |
数据去向 |
商品查询界面、商品详情界面、购物车界面、商品管理界面 |
数据流组成 |
商品名、商品价格、库存数量、商品类别 |
下表描述用户通过输入用户名和密码进行身份验证处理,验证成功后将返回的信息显示在界面上。
表3-6用户身份验证
处理逻辑名称 |
用户身份验证 |
简述 |
检查输入信息的合法性 |
输入的数据流 |
用户名+密码 |
处理过程 |
根据输入的用户名和密码,检索用户,显示查询信息 |
输出的数据流 |
用户信息、商品信息 |
下表描述用户成功登录系统后通过商品名查询商品信息,根据查询后返回的数据显示在界面上。
表3-7商品信息查询
处理逻辑名称 |
商品信息查询 |
简述 |
检查输入信息的合法性 |
输入的数据流 |
商品名或商品编号或商品类别 |
处理过程 |
登录成功的用户,通过商品名查询用户所需的商品,还可查询用户的订单及评论。 |
输出的数据流 |
用户订单信息,购物车信息 |
下表描述管理员用户成功登录系统后可以添加商品,添加后,重新查询商品表,返回的商品数据显示在界面上。
表3-8商品信息添加
处理逻辑名称 |
商品信息添加 |
简述 |
检查输入信息的合法性 |
输入的数据流 |
商品信息 |
处理过程 |
登录成功的管理员用户,往数据库添加一条商品信息数据。 |
输出的数据流 |
商品信息,订单信息 |
下表描述管理员用户成功登录系统后,购买商品,填写订单收货人、收货地址、联系电话等,生成购买订单后,重新查询订单表,返回的订单数据显示在界面上。
表3-9订单生成
处理逻辑名称 |
订单生成 |
简述 |
检查输入信息的合法性 |
输入的数据流 |
订单信息 |
处理过程 |
登录成功的用户,往数据库添加一条订单信息数据。 |
输出的数据流 |
订单信息 |
下表描述用户成功登录系统后通过公告标题查询公告信息,根据查询后,返回的公告数据显示在界面上。
表3-10公告信息查询
处理逻辑名称 |
公告信息查询 |
简述 |
检查输入信息的合法性 |
输入的数据流 |
公告标题 |
处理过程 |
登录成功的用户,通过公告标题查询用户所需的公告信息 |
输出的数据流 |
公告信息 |
2.商品浏览模块:没有登录的用户和登录的用户都可以在系统前台进行商品浏览,用户可以查看商品的详细信息和选择相应的商品类别进行该类别下的商品查看,用户还可以通过商品名称的关键字进行搜索。
3.订单管理模块:用户购买商品后,填写收货地址、收货人、电话等信息,生成订单信息,管理员可以审核订单,删除、修改订单,对订单信息进行相应的商品发货。
如下图所示为订单管理流程图。
图4-4订单管理流程图
5.用户管理模块
系统管理员可以对用户信息进行增、删、改、查的操作。
6.购物车模块
用户对个人添加至购物车里面的商品进行增删改查等操作。
如下图所示为购物车模块流程图。
图4-5购物车模块流程图
7.商品类别管理模块
系统管理员可以对商品类别进行增、删、改、查的操作。
4.3.1概念设计
本系统的E-R图表现了系统中各个实体之间的联系,经过分析,系统的实体有商品、商品类别、订单、用户等。
4.3.2逻辑设计
Allusers表是系统用户的信息表,存储系统用户真实姓名、性别、年龄、电话、地址、备注、编号、姓名、用户密码以及其相对应的密码等相关信息。
Dingdan表是订单信息表,存储用户的订单的相关信息,其中包括编号、订单号、金额、订单内容、用户名、姓名、邮件地址、邮编、手机、快递类型、快递费用、添加时间、是否审核等相关信息。
liuyanban表是用户留言信息表,存储用户的留言的内容和回复信息,其中包括编号、头像、性别、QQ、邮箱、电话、内容、添加时间、回复内容等相关信息。
yonghuzhuce表是用户注册信息表,存储用户的注册信息,其中包括编号、用户名、密码、姓名、性别、出生年月、QQ、邮箱、电话、身份证、头像、地址、备至、折扣等相关信息。
shangpinxinxi表是商品信息表,存储商品内容的信息,其中包括编号、商品编号、商品名称、类别、价格、发布人、图片、库存、销量、简介、添加时间等相关信息。
xinwentongzhi表是公告信息表,存储公告的内容信息,其中包括编号、标题、类别、内容、添加人、首页图片、点击率、添加时间、摘要等相关信息。
4.3.3表设计
数据库表设计:经过前期的需求分析、可执行分析、数据流分析等各个流程分析,结合软件工程的高内聚、低耦合规则,并考虑到以后的程序功能扩展,设计如下几张表。
goods_type |
|||||
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
type_id |
int |
11 |
否 |
主键 |
商品分类ID |
father_id |
smallint |
5 |
否 |
上级分类ID |
|
name |
varchar |
255 |
是 |
商品名称 |
|
desc |
varchar |
255 |
是 |
描述 |
|
icon |
varchar |
255 |
是 |
图标 |
|
source_table |
varchar |
255 |
是 |
来源表 |
|
source_field |
varchar |
255 |
是 |
来源字段 |
|
create_time |
timestamp |
0 |
否 |
创建时间 |
|
update_time |
timestamp |
0 |
否 |
更新时间 |
|
mall_center |
|||||
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
mall_center_id |
int |
11 |
否 |
主键 |
商城中心ID |
brand |
varchar |
64 |
是 |
品牌 |
|
commodity_attribute |
varchar |
64 |
是 |
商品属性 |
|
recommend |
int |
11 |
否 |
智能推荐 |
|
cart_title |
varchar |
125 |
是 |
标题 |
|
cart_img |
text |
0 |
是 |
封面图 |
|
cart_description |
varchar |
255 |
是 |
描述 |
|
cart_price_ago |
double |
8 |
否 |
原价 |
|
cart_price |
double |
8 |
否 |
卖价 |
|
cart_inventory |
int |
11 |
否 |
商品库存 |
|
cart_type |
varchar |
64 |
否 |
商品分类 |
|
cart_content |
longtext |
0 |
是 |
正文产品 |
|
cart_img_1 |
text |
0 |
是 |
主图1 |
|
cart_img_2 |
text |
0 |
是 |
主图2 |
|
cart_img_3 |
text |
0 |
是 |
主图3 |
|
cart_img_4 |
text |
0 |
是 |
主图4 |
|
cart_img_5 |
text |
0 |
是 |
主图5 |
|
create_time |
datetime |
0 |
否 |
创建时间 |
|
update_time |
timestamp |
0 |
否 |
更新时间 |
|
order |
|||||
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
order_id |
int |
11 |
否 |
主键 |
订单ID |
order_number |
varchar |
64 |
是 |
订单号 |
|
goods_id |
mediumint |
8 |
否 |
商品id |
|
title |
varchar |
32 |
是 |
商品标题 |
|
img |
varchar |
255 |
是 |
商品图片 |
|
price |
double |
10 |
否 |
价格 |
|
price_ago |
double |
10 |
否 |
原价 |
|
num |
int |
8 |
否 |
数量 |
|
price_count |
double |
8 |
否 |
总价 |
|
norms |
varchar |
255 |
是 |
规格 |
|
type |
varchar |
64 |
否 |
商品分类 |
|
contact_name |
varchar |
32 |
是 |
联系人姓名 |
|
contact_email |
varchar |
125 |
是 |
联系人邮箱 |
|
contact_phone |
varchar |
11 |
是 |
联系人手机 |
|
contact_address |
varchar |
255 |
是 |
收件地址 |
|
postal_code |
varchar |
9 |
是 |
邮政编码 |
|
user_id |
int |
10 |
否 |
买家ID |
|
merchant_id |
mediumint |
8 |
否 |
商家ID |
|
create_time |
timestamp |
0 |
否 |
创建时间 |
|
update_time |
timestamp |
0 |
否 |
更新时间 |
|
description |
varchar |
255 |
是 |
描述 |
|
state |
varchar |
16 |
否 |
订单状态 |
|
order_after_sales |
|||||
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
order_after_sales_id |
int |
11 |
否 |
主键 |
订单售后ID |
order_number |
varchar |
64 |
是 |
订单号 |
|
user_number |
int |
11 |
是 |
用户编号 |
|
after_sale_goods |
varchar |
64 |
是 |
售后商品 |
|
after_sales_type |
varchar |
64 |
是 |
售后类型 |
|
relevant_vouchers |
varchar |
255 |
是 |
相关凭证 |
|
after_sales_content |
text |
0 |
是 |
售后内容 |
|
examine_state |
varchar |
16 |
否 |
审核状态 |
|
examine_reply |
varchar |
16 |
是 |
审核回复 |
|
recommend |
int |
11 |
否 |
智能推荐 |
|
create_time |
datetime |
0 |
否 |
创建时间 |
|
update_time |
timestamp |
0 |
否 |
更新时间 |
|
order_shipment |
|||||
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
order_shipment_id |
int |
11 |
否 |
主键 |
订单发货ID |
order_number |
varchar |
64 |
是 |
订单号 |
|
user |
int |
11 |
是 |
用户 |
|
courier_services_company |
varchar |
64 |
是 |
快递公司 |
|
courier_number |
varchar |
64 |
是 |
快递单号 |
|
receiving_address |
varchar |
64 |
是 |
收货地址 |
|
contact_number |
varchar |
64 |
是 |
联系电话 |
|
consignee |
varchar |
64 |
是 |
收货人 |
|
confirm_receipt |
varchar |
64 |
是 |
确认收货 |
|
delivery_details |
text |
0 |
是 |
发货明细 |
|
recommend |
int |
11 |
否 |
智能推荐 |
|
create_time |
datetime |
0 |
否 |
创建时间 |
|
update_time |
timestamp |
0 |
否 |
更新时间 |
|
registered_member |
|||||
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
registered_member_id |
int |
11 |
否 |
主键 |
注册会员ID |
user_number |
varchar |
64 |
否 |
用户编号 |
|
gender |
varchar |
64 |
是 |
性别 |
|
age |
int |
11 |
是 |
年龄 |
|
examine_state |
varchar |
16 |
否 |
审核状态 |
|
recommend |
int |
11 |
否 |
智能推荐 |
|
user_id |
int |
11 |
否 |
用户ID |
|
create_time |
datetime |
0 |
否 |
创建时间 |
|
update_time |
timestamp |
0 |
否 |
更新时间 |
$result = $this->validate($request, $this->validate);
$request['password'] = md5($request['password']);
$result = $this->model->register($request, $this->table);
$data['message'] = "field的值不能为空!";
public function register($request=[],$table_name = ''){
$username = $request['username'];
$bol = $this->where(['username'=>$username])->find();
$result = self::allowField(true)->save($request);
return ['error' => ['code' => 3000, 'message' => '注册失败']];
return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];
图5-1前台登录界面
图5-2后台登录界面
登录关键代码如下:
$result = $this->validate($request, $this->validate);
$request['password'] = md5($request['password']);
$result = $this->model->login($request, $this->table);
$data['message'] = "field的值不能为空!";
public function login($request=[],$table_name = ''){
$username = $request['username'];
$password = $request['password'];
$bol = $this->where(['username'=>$username])->find();
if ($request['password']==$bol['password']) {
$access_token['create_time'] = date('Y-m-d H:i:s');
$access_token['update_time'] = date('Y-m-d H:i:s');
$access_token['info'] = json_encode($bol);
// $access_token['info'] = $bol;
$access_token['token'] = md5(date('Y-m-d H:i:s'));
$bol_token = Db::name('AccessToken')->insert($access_token);
$data['obj']['token'] = $access_token['token'];
return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];
return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];
return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];
系统为用户提供简洁的商品视图,方便用户找到自己需要的商品。在shangpinxinxilist.php实现商品列表的展示,用户点击某个商品,通过商品id传递值,找到数据表的该商品的信息。
图5-4商品浏览界面
public function get_list($request=[],$table_name = '',$table_id = ''){
$page = 1;
$size = $table_name == "auth" ? 100 : 10;
$where = [];
$order = $table_id.'_id desc';
$field = '*';
// echo $order;exit;
$columns = Db::query( "show COLUMNS FROM `".$table_name."`");
foreach($columns as $key=>$val){
$field_name = $val['Field'];
if(isset($request['like'])){
if ($request['like']==true){
//字段模糊查询
if(isset($request[$field_name])){
$where[] = [$field_name, '=', $request[$field_name]];
}
}else{
//字段模糊查询
if(isset($request[$field_name])){
$where[] = [$field_name, 'like', '%' . $request[$field_name] . '%'];
}
}
}else{
//字段模糊查询
if(isset($request[$field_name])){
$where[] = [$field_name, 'like', '%' . $request[$field_name] . '%'];
}
}
//范围查询
if(isset($request[$field_name.'_min'])){
$where[] = [$field_name, '>=', $request[$field_name.'_min']];
}
if(isset($request[$field_name.'_max'])){
$where[] = [$field_name, '<=', $request[$field_name.'_max']];
}
}
//分页
if (isset($request['page'])){
$page = $request['page'];
}
if (isset($request['size'])){
$size = $request['size'];
}
//排序
if (isset($request['order'])){
$order = $request['order'];
}
//查询字段
if (isset($request['field'])){
$field = $request['field'];
}
//模糊查询
$list= $this->where($where)->order($order)->field($field)->page($page, $size)->select()->toArray();
foreach($list as &$l){
foreach($l as &$o){
if(strpos($o,$_SERVER['HTTP_HOST']) === false){
$o = str_replace('upload','http://'.$_SERVER['HTTP_HOST'].'/upload',$o);
}
}
}
return $list;
}
系统提供用户申请售后功能,在shouhou_add.php实现售后申请,申请售后后,存入数据库的售后表。管理员管理订单的售后申请。
public function upload()
{
//上传文件目录获取
$month = date('Ym', time());
$data = 'file';//文件域
$path = 'upload/file/' . $month . "/";//上传文件保存位置
$allow_ext = explode(",", "jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP");
if ($_FILES) {
$file = $_FILES[$data];
$rst = [];
if (!empty($file['name'])) {
$file_type = explode('.', $file['name']);
$ext = end($file_type); //获取文件的格式
$ext = strtolower($ext);
if (!in_array($ext, $allow_ext)) {
$rst['error']['code'] = 30000;
$rst['message'] = '只能上传jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP类型文件';
} else {
if (!is_dir($path))//判断目录是否存在
{
mkdir($path, 0777, true);//如果目录不存在则创建目录
};
$name = date('YmdHis') . '_' . rand(10000, 99999) . '.' . $ext;
$save_rst = move_uploaded_file($file['tmp_name'], $path . $name);
if ($save_rst !== false) {
// $rst['code'] = 1;
$rst['result']['url'] = 'http://'.$_SERVER['HTTP_HOST'].'/'.$path . $name;
// $rst['ext'] = $ext;
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '文件上传失败';
}
}
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '未选择文件';
}
} else {
$rst['error']['code'] = 30000;
$rst['error']['message'] = '未获取到文件';
}
return json_encode($rst);
}
用户在浏览商品后,登录系统前台,进行商品购买,将商品添加至购买车,在个人后台可以查看购买车里面的商品,确定商品之后可以生成订单,然后支付。
图5-7购买商品界面
public function avg_group()
{
$request = Request::param();
if (isset($request['groupby']) && isset($request['field'])) {
if (!empty($request['groupby']) && !empty($request['field'])) {
$result = $this->model->avg_group($request, $this->table, $this->table_id);
$data = $result;
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby或者field的值不能为空!";
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby或者field的值不能为空!";
}
return json_encode($data);
}
图5-8系统用户管理界面
如下图所示为修改密码界面。
图5-9修改密码界面
系统用户管理关键代码如下:
if($k != 'page' && $k != 'size'){
$result = $this->validate($request, $this->validate);
$result = $this->model->set($request, $this->table, $this->table_id, $where);
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
图5-10公告添加界面
公告发布关键代码如下:
if (isset($request['groupby'])) {
if (!empty($request['groupby'])) {
$result = $this->model->count_group($request, $this->table, $this->table_id);
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby的值不能为空!";
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby的值不能为空!";
管理人员可以对商品进行增删查改的操作,这些操作将在商品管理界面进行。
图5-11商品管理界面
商品发布关键代码如下:
if (isset($request['groupby']) && isset($request['field'])) {
if (!empty($request['groupby']) && !empty($request['field'])) {
$result = $this->model->sum_group($request, $this->table, $this->table_id);
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby或者field的值不能为空!";
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby或者field的值不能为空!";
管理人员可以对订单进行增删查改的操作,这些操作将在订单管理界面进行。
图5-12订单界面
订单审核关键代码如下:
if (isset($request['field'])) {
if (!empty($request['field'])) {
$result = $this->model->sum_field($request, $this->table, $this->table_id);
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
$result = $this->validate($request, $this->validate);
$request['password'] = md5($request['password']);
$res = $this->add_before($request, $this->table, $this->table_id);
$result = $this->model->add($request, $this->table, $this->table_id);
$this->add_after($this->table);
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
字段名称 |
描述 |
测试项 |
首页注册功能测试 |
输入数据 |
1、输入正确的邮箱、用户名、密码、确认密码、以及验证码之后点击“注册”按钮 2、输入错误的用户名或密码、邮箱、验证码等,单击“注册”按钮 3、不输入邮箱、用户名、密码、确认密码、以及验证码之后点击“注册”按钮 |
预计输出数据 |
1、用户能正确注册账号,成功插入数据库用户的账户资料,提示注册成功。 2、无法注册用户信息,注册失败。 3、无法注册用户信息,注册失败。 |
使用上述测试用例对前台首页注册界面进行测试,当在输入正确的邮箱、用户名、密码、确认密码、以及验证码之后,系统将弹出注册成功信息提示对话框。
使用上述测试用例对前台首页注册界面进行测试,当在输入错误的用户名或密码、邮箱、验证码之后,系统将提示错误。
使用上述测试用例对前台首页注册界面进行测试,当在不输入用户名、密码、邮箱、验证码之后,点击注册按钮。
测试项 |
首页登录功能测试 |
输入数据 |
1、输入正确的用户名和密码,单击“登录”按钮 2、输入错误的用户名和密码,单击“登录”按钮 3、不输入用户名和密码,单击“登录”按钮 |
预计输出数据 |
1、数据库中存在的用户能正确登录,。结果弹出主界面。 2、错误的或者无效用户登录,登录系统失败。 3、输入用户名或密码信息为空,登录系统失败。 |
使用上述测试用例对前台首页登录界面进行测试,当在用户名输入框中输入正确的用户名和密码时候,系统将弹出登录成功信息提示对话框。
使用上述测试用例对前台首页登录界面进行测试,当在用户名输入框中输入错误的或无效的用户名时,系统将弹出错误信息提示对话框。
通过测试可以观察到实现的运行结果与测试用例中预计输出的结果是相符的,所以测试通过。
表6-4商品表预存数据
商品名 |
商品类别 |
商品价格 |
商品状态 |
A |
A |
389 |
上架 |
B |
B |
249 |
上架 |
C |
C |
322 |
下架 |
D |
D |
168 |
上架 |
添加时应注意事项:
管理员添加商品时必须添加已存在的商品类别,若该商品不属于现有的所有类别,则应该先添加商品类别。
下表描述了添加商品进行测试的用例,主要是为了防止添加商品时出现异常和存在的漏洞。
表6-5添加商品测试用例
输入 |
输出 |
||
商品名 |
商品价格 |
商品图片 |
|
空 |
参数错误 |
||
空 |
参数错误 |
||
空 |
请选择上传图片 |
||
A |
1 |
a.jpg |
添加成功 |
输入 |
输出 |
||
用户ID |
商品ID |
商品数量 |
|
11 |
1 |
1 |
购买商品成功 |
22 |
电视 |
请填写商品数量 |
|
33 |
电视 |
a |
购买失败 |
经过这几个月的设计和开发,“基于PHP的电脑外设商城”已经完成了,其功能符合设计需求,能够完成买家用户的注册、买家用户的在线购买、购物车管理、订单管理和管理员的商品类别管理、订单审核、商品维护、用户管理、系统管理,信息维护、查询等功能。经过最后的使用,证明系统完全具有可行性与可扩充性。
在系统的分析阶段,主要是分析系统的需求,理解系统要完成的基本功能,找出系统的用例(Use Case)和角色(Actor),画出系统的用例模型图,用例模型是此后系统建模的基础。在用例的基础上分析顺序图和协作图,得到系统的所有对象,然后建立对象模型。抽象出系统的类,并将系统中联系紧密的类划分为若干个包,画出包图。有了这些基础,就可以将系统划分为小单元功能模块。
整个过程中,我必须认可UML统一建模语言,它让我很清晰的知道自己想做什么,想实现什么,对系统后面的代码编写起到决定性的帮助,同时经过本次系统的设计与实现,让我积累了很多经验,提高了编写程序的能力,为以后的学习和工作打下了坚实的基础。
由于时间有限,本系统还有待继续完善和改进,因此需要进一步进行分析和修改,以使其更加完善!
参考文献
[1]徐佩.新时期计算机软件开发技术的应用及发展趋势[J].农家参谋,2019(08):167.
[2]张帅,崔婀娜,魏立波.互联网+健康在线服务平台的设计与实现[J].科技创新与应用,2019(10):91-92.
[3]谷利国,陈存田,张甲瑞.基于B/S模式的人事教育信息管理系统的分析与设计[J].电脑知识与技术,2019,15(10):58-59.
[4]刘军.基于PHP技术的动态网页设计[J].信息记录材料,2021,22(10):142-143.DOI:10.16009/j.cnki.cn13-1295/tq.2021.10.068.
[5]冯英伟,吕国.基于PHP技术的智慧教室监控平台设计研究[J].河北建筑工程学院学报,2021,39(02):159-161.
[6]熊辉.PHP技术与MYSQL数据库技术的Web动态网页设计[J].信息记录材料,2021,22(01):115-116.DOI:10.16009/j.cnki.cn13-1295/tq.2021.01.078.
[7]张文豪. 基于PHP的通用开发框架研究与实现[D].广东工业大学,2020.DOI:10.27029/d.cnki.ggdgu.2020.002249.
[8]刘倩倩.基于PHP和MySQL的网站设计与实现[J].中小企业管理与科技(下旬刊),2020(10):162-163.
[9]陈雨,张丰,吴泽志,刘晚玲,贾鑫宇.基于html5和PHP技术进行校园互联服务平台的开发[J].电子世界,2020(19):32-33.DOI:10.19353/j.cnki.dzsj.2020.19.015.
[10]计文柯.Spring技术内幕:深入解析Spring架构与设计原理(第2版).机械工业出版社,2015.
[11]姜承尧.MySQL技术内幕.机械工业出版社,2014.
[12]阙丽平.福建经贸学院教师考评系统设计与实现.电子科技大学,2014.
[13]单东林张晓菲魏然.锋利的JQUERY.人民邮电出版社,2015.
[14]MartinM,LamMS.AutomaticGenerationofXSSandSQLInjectionAttackswithGoal-directedModelCheckingUsenixSecuritySymposium,July28-August1,2008,SanJose,Ca,Usa.2018:31-44.
[15]闫新.基于WEB的摄影小站设计与实现.电子科技大学,2014.
[16]BeckK,GammaE.Test-infected:programmerslovewritingtestsMoreJavagems.CambridgeUniversityPress,2015:357-376.
[17]GuptaP,GovilMC.SpringWebMVCFrameworkforrapidopensourceJ2EEapplicationdevelopment:acasestudy.InternationalJournalofEngineeringScience&Technology,2015,2(6).
[18]BruceRich;TheoderJ.Shrader;AthonyJ.Nadalin,JavaandInternet[J].IntelligentInformation Management.,2015,(10):210-230
[19]ElizabethAWilliamson,DavidKHarrison,MikeJordan.Informationsystemsdevelopmentwithin supplychainmanagement[J].InternationalJournalofInformationManagement,2014,(5):25-32.
[20]MattBishop.Trendsinacademicresearch:vulnerabilitiesanalysisandintrusiondetection[J]. Computers&Security,2014,(7)56-78.
致 谢
大学的学习生活总是感觉短暂的,总感到知识还没有学够,但大学毕业就在我们面前,即毕业设计即将的结束,意味着我们的大学生涯即将结束。毕业设计是我们在大学所学知识的一次总结,更是对我们过去所学知识的提炼和升华,通过毕业设计,我们认识到大学学习过程中还有那些知识没有掌握,那些知识需要我们进入深入研究。这次毕业设计让我学到了很多新的知识,研究了一些新的以前自己不熟悉的领域,使我处理问题的能力得到了一定的提升,同时也为今后的继续深造或踏入社会大门提供了很好的锻炼机会。
我也曾经沮丧过,失落过,想放弃过,可是因为你们这不厌其烦的鼓励和支持才使得我坚持了下来,这里我要对我的老师和同学们说句“谢谢你们”。因为我们的知识是有限的,所以本文将不可避免的会出现一些错误和不足之处,还请老师指正。
点赞+收藏+关注 → 私信领取本源代码、数据库
基于php+MySQL电脑外设商城网站 毕业设计-附源码271538相关推荐
- 基于php+MySQL电脑外设商城网站毕业设计源码271538
php电脑外设商城网站 摘 要 随着Internet的使用越来越广泛,在传统的商业模式中,对于电脑等商品,人们习惯于到各种商家店铺购买.然而在快节奏的新时代中,人们不一定能为购买电脑腾出时间,更不会 ...
- 服装商城网站 毕业设计-附源码241505
PHP服装商城 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正 ...
- 基于NET蛋糕销售网站 毕业设计-附源码090918
基于NET蛋糕销售网站 摘 要 随着Internet的使用越来越广泛,在传统的商业模式中,对于蛋糕等商品,人们习惯于到各种商家店铺购买.然而在快节奏的新时代中,人们不一定能为购买蛋糕腾出时间,更不会 ...
- springboot+视频网站 毕业设计-附源码240925
摘 要 现阶段,社会的发展和科技的进步,以及大数据时代下纷繁数据信息的融合,使得人们在生产及生活过程中,都将会接收到各种类型的数据信息,而通过计算机技术与网络技术,则能够将众多人们所不了解或不常用的 ...
- springboot视频网站毕业设计-附源码240925
摘 要 现阶段,社会的发展和科技的进步,以及大数据时代下纷繁数据信息的融合,使得人们在生产及生活过程中,都将会接收到各种类型的数据信息,而通过计算机技术与网络技术,则能够将众多人们所不了解或不常用的 ...
- springbooy+求职招聘网站 毕业设计-附源码301914
基于springboot的求职招聘网站 摘 要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,求职招聘网站当然也不能排除在外.求职招聘网 ...
- php初中历史专题教学网站 毕业设计-附源码100623
初中历史专题教学网站的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克 ...
- php校园二手交易网站 毕业设计-附源码841148
目 录 摘要 1 1 绪论 1 1.1 研究背景 1 1.2国内外研究现状 1 1.3论文结构与章节安排 1 2校园二手交易网站系统分析 3 2.1 可行性分析 3 2.2 系统流程分析 3 2.2 ...
- php积极心理学交流学习网站 毕业设计-附源码100623
摘 要 心理测试在我国兴起还是近几年的事,由于对心理健康认识不足,观念陈旧,一些人虽然有心理问题或有心理疾病症状,但却想不到或不敢去心理测试.因为他们中有些人是不知道自己的这些问题是应该找心理医生呢还 ...
- ssm天天超市购物网站 毕业设计-附源码022101
基于SSM天天超市购物网站 摘 要 近年来,随着移动互联网的快速发展,电子商务越来越受到网民们的欢迎,电子商务对国家经济的发展也起着越来越重要的作用.简单的流程.便捷可靠的支付方式.快捷畅通的物流快递 ...
最新文章
- 算法工程师当前选哪个方向好?
- @老板:别开视频会议了,效率低没人care,斯坦福、微软都可以作证
- 用计算机探索,学生计算机基础的应用探索
- Java垃圾回收(GC)机制详解
- Go 语言:我那么值钱,我骄傲了吗?
- 给SAP云平台的global账号添加Leonardo机器学习服务
- 助力在线教育,阿里云推出百万专项扶持基金计划
- 算法的力量万变不离其宗 -- 李开复
- .aspx页面 引用命名空间 (Import 指令,web.config)
- 关于量子计算机的科学论文,量子计算机论文,关于科学家尝试用量子计算机创造时间旅行论文范文-毕业论文网...
- ZigBee TI ZStack CC2530 8.4 如何用高版本IAR打开低版本协议栈
- IOC(控制反转)的理解
- 排序算法 稳定和不稳定_稳定和不稳定排序算法之间的区别?
- 没有大厂经验的前端可以这么写简历
- 对话李春龙:如何用Kubernetes管理有状态服务
- OpenCV(3.4.1)错误 Assertion failed (chunk.m_size 0xFFFF)
- 泉州地区的“会子”是一种怎样的制度?
- 轩小陌的Python笔记-day14 自定义模块、第三方模块、内置模块(部分)
- 可信、安全、稳定构建金融科技新局面
- 智能CAN总线隔离中继器
热门文章
- 共模电感适用的频率_详解消灭EMC的三大利器:电容器/电感/磁珠!
- cesium模型不遮挡点线面_VueCLI3.0干货系列之集成Cesium三维地球框架
- oracle设置自增字段,oracle序列
- Host 'admin-PC' is not allowed to connect to this MySQL server
- 基于javaweb的学生考勤管理系统(java+SSM+Poi导出+Easyui+JFreeChart+maven+mysql)
- 转载:Linux内核探索之路——关于书
- Python语言入门教程(一)
- 在 VSCode 中配置 PHP 开发环境
- 超全超详细Rime中州韵输入法配置指南
- 使用 Fiddler Hook 报错:502 Fiddler - Connection Failed