基于WEB的二手书销售平台的设计


    






    基WEB二手书销售台设计实现


    新学期开始学开始购买新书旧书处理方式点单现社会绿色文明倡导力度十分方提倡节约纸提高纸张循环利买新书学生家长读者说仅价格较高会造成树木资源消耗问题建议二手书解决基毕业设计开发实现C2C模式二手书销售台某种角度说解决纸张浪费问题外种角度解决二手书处理困扰
    台基BS架构设计二手书销售台台win10操作系统开发台服务器采Apache+MySQL+PHP开源软件组合PHPstorm+sublime3作开发工具前端展示页面HTML+CSS+JS语言开发台开发PHP台语言环境MySQL网络数库服务器Apache作PHP解释器该台基ThinkPHP5框架开发够程度提高台开发效率时缩维护该台难度
    台分两部分:前台页面展示台理前台功展示二手书二手书搜索户登录注册修改户信息订单确认查购物车台理功户理二手书理分类理
    关键词:二手书销售ThinkPHP5MySQLPHPApache


    Design and implementation of second hand book sales platform based on Web

    Abstract
    At the beginning of each new semester students will start to buy new books and the way of handling old books is a little monotonous Nowadays the promotion of green civilization in the society is very strong Everywhere is advocating saving paper and improving paper recycling Maybe for students parents and some readers buying new books is not only a waste of money but also a waste of paper Using secondhand books is a good way to solve this problem Based on this this graduation project develops and realizes the C2C model secondhand book sales platform on the one hand can solve the paper waste problem well on the other hand also solves the people to the secondhand book processing problem
    This platform is a BS architecture based on the design of secondhand book sales platform the platform is developed under the win10 operating system the background server using Apache+MySQL+PHP this open source software combination using PHPstorm+Sublime3 as a development tool The frontend display page is developed with HTML+CSS+JS language PHP as the background language environment MySQL as the network database server and Apache as the PHP interpreter The platform is developed on the basis of ThinkPHP5 framework which can maximize the efficiency of the development of the platform and reduce the difficulty of maintaining the platform
    The platform is mainly divided into two parts front page display and background management The main functions of the front desk are to display secondhand books search for secondhand books user login and registration modify user information confirm and view orders and shopping cart The main functions of background management are user management secondhand book management and classification management
    Keywords Secondhand bookThinkPHP5MySQLPHPApache






    目 录

    1前言 1
    11台开发背景 1
    12台开发意义 1
    13行性研究 1
    2开发技术工具介绍 2
    21BS架构模式 2
    211BS架构优点 2
    212BS结构缺点 2
    22页面开发技术 2
    23 ThinPHP50框架 3
    24 Apache 3
    25PHPstorm 4
    3台分析设计 4
    31台需求分析 4
    311户需求 4
    312功需求 4
    32台设计 5
    321功结构设计 5
    322概念模型设计 6
    323逻辑模型设计 7
    324数库设计 8
    4台实现 10
    41 ThinkPHP框架部署 10
    42前台功实现 12
    421台首页 12
    422户注册户登录 12
    423中心 15
    424图书分类功 16
    425查找图书功 20
    426订单确认购物车功 21
    427订单理功 23
    43台功实现 24
    431书籍类目理 24
    432书籍理 25
    433订单理 25
    434户理 26
    5台功测试 26
    51 台功测试目标 26
    52 台功测试方法 27
    521 注册登录功测试 27
    522 购物车功测试 27
    523 订单功测试 28
    524 图书功测试 28
    53 测试总结 28
    6 总结 28
    参考文献 30
    致谢 31
    附录 32



    1前言
    新学期开始学生需开始购买新书旧书处理方式点单现社会绿色文明宣传力度十分节约纸张十分重必行特书重复学生家长已参加工作需补充知识年轻说购买新书仅价格较高会造成树木资源消耗[1]二手书解决问题办法
    11台开发背景
    现代网络时代快速发展网书店出现线书店带影响网书店送货门24时服务搜索图书快捷等便利条件深受欢迎着社会方便追求逐渐升高网购群日益增加网书店崛起提供力支撑
    网书店发展时带动二手书交易市场着家物质生活极满足二手书交易消费需求实际正逐渐刺激二手书接受程度逐渐升高移动设备普移动互联网技术电子商务成熟民众更容易接受二手交易台实名制求二手交易提供保障
    现家长开始注重孩子学阅读着孩子年龄增长学校求读物变化济存储空间角度考虑二手书失性价高新书代品校学生着课程变化身济考虑趋选择购买二手书籍者出售二手书籍
    现高校校园中想购买二手书学般学校附旧书书店者学校坛中寻找然样达购买二手书目浪费量时间含确定性[2]二手书销售台学生说短时间目性高种选择
    12台开发意义
    环保方面考虑众周知纸张制造程造纸树木消耗原生态环境产生巨毁坏造纸程会造成程度污染二手书利够达成节约纸张目间接维护生态环境
    书籍方面考虑固定空间造成书籍浪费条件书籍存储较问题二手书交易恰恰解决样困扰二手书利减少纸张消耗实现书籍循环持续利
    13行性研究
    济行性:学生读者提供C2C模式二手书销售台单够解决纸张消耗问题适应社会低碳环保节减排济发展求社会环境保护现资源循环利份力够提供安全购书台解决二手书处理问题困扰
    技术行性:台开发系统架构BS架构基ThinkPHP50开发框架程度提高开发效率缓解开发难度压力时Apache+MySQL+PHP开源免费软件组合作服务器端应开源免费特点开发台时减少开发成缩开发需周期台Window10操作系统开发MySQL网络数库服务器PHP作服务器端脚解释器Apache作服务器前端页面JavaScript脚语言拥跨台特点绝数浏览器支持够种台运行

    2开发技术工具介绍
    台PHP作开发语言采ThinkPHP50框架选MySQL作前台数库基BS模式进行设计
    21BS架构模式
    BS架构(BrowserServer)浏览器服务器架构模式种架构模式Internet断发展CS架构种改动者改良架构模式种模式集合客户端系统开发维护简单化Browser指Web浏览器核心事务逻辑服务器端完成较少事务逻辑前端完成需安装浏览器通web Server数库实现数进行交互功BS架构三层结构第层表现层:实现户台数交互查询结果输出第二层逻辑层:通服务器实现客户端应逻辑功第三层数层:接受客户端请求单独运行种运算[3]
    211BS架构优点
    现着户软件系统更新升级需求越越高BS架构核心功实现集中服务器BS架构软件系统显易见着更方便特点易维护升级
    212BS架构缺点
    速度安全性BS架构需消耗庞设计成BS架构理软件安装服务器端缘服务器运行数负荷会重假服务器旦出现崩溃等现象会产生法想象果
    22页面开发技术
    PHP(PHP Hypertext Preprocessor)种脚服务器执行普遍应开源脚语言优点仅成低速度快移植性优异置函数库丰富等许企业喜欢PHP开发网站PHP独特语法CJAVAPerlPHP创新语法混合体相较CGI者Perl更快运行动态网页编程语言相PHP写出动态页面执行效率远远高完全生成HTML标记CGIPHP需程序嵌入HTML页面中运行[4]PHP拥十分强功CGI功PHP实现流行数库操作系统够支持
    作种强语言PHP解释器够服务器访问文档执行命令建立网络连接等模块形式CGI形式安装功会服务器增加许安全素安装正确配置正确编写相安全代码PHP创建出PerlC创建更安全CGI程序安全性性间寻找较完美衡点
    23 ThinPHP50框架
    ThinkPHP50API开发设计强高性框架免费开源快速简单面象遵Apache2开源协定发布Struts结构基础做改良欠缺部分进行完善时鉴国外许优异框架模式采面象开发结构MVC模式融合Struts思想TagLib(标签库)RoRORM映射ActiveRecord模式作整体开发处理方案ThinkPHP50提供底层架构兼容处理基类库数库访问层模板引擎缓存机制插件机制角色认证表单处理等常组件满足开发应时部分需求[5]组件精心设计完善应程序开发程仅需留意您业务逻辑
    50版颠覆重构版采全新架构思想核心进行优化减少赖实现真正惰性加载[6]
    24 Apache服务器
    Apache HTTP Server(简称Apache)世界广泛Web服务器软件现够运行流行计算机台跨台安全性等优点广泛应高效快速稳定够通简单API扩展PerlPython编译服务器中Apache特点简单快速性稳定作代理服务器
    25PHPstorm
    PhpStorm JetBrains 公司开发商业 PHP 集成开发工具旨提升户工作效率够深入理解户代码保证智编码完成具快速导航时检错等功优点包括种台支持PHP重构支持代码重构支持集成Zencode支持时拥历史记录功非常方便PHP集成开发工具

    3台分析设计
    31台需求分析
    311户需求
    着社会济断发展种书籍价格涨数愿意购买价格较高新书选择购买价格略低二手书特学生群体该群体二手书需求较高群体现学求学生购买学期教材没济收入学生言购买教材笔费选修课程教材次没性次利少学生选择购买校园二手书解决课程需教材问题时现童阅读倡导力度越越高家长孩子程度阅读更书籍时减少书籍存放困扰选择出售二手书已步入社会年轻断充电学购买价廉二手书
    312功需求
    台设计包含两部分:前台页面理台数理户操作前台页面实现台理理员处理修改前台户数相应数进行处理台功求具体:
    1 台页面设计量简洁明漂亮方页面户心情愉悦感受性化细节
    2 详细完整二手书分类通类目搜索需二手书信息
    3 户二手书分类二手书名称进行模糊查询
    4 户中心修改户信息
    5 游客通注册功台中注册台户
    6 户登录时进行身份验证
    7 户发布修改删二手书出售信息
    8 户想购买二手书加入购物车够修改购物车二手书数量
    9 理员台二手书类目户订单进行理
    32台设计
    321功结构设计
    二手书销售台分两部分:前台书城界面系统台系统前台系统提供户查询购买需二手书出售二手书处理订单数简单操作界面熟悉网购物轻松操作购买前台理系统二手书展示二手书检索中心理购物车订单理等功前台系统结构设计图:

    图31 前台界面结构设计
    前台理系统通否登录判断否台户果没登录游客身份进入台游客台功基础查询二手书信息浏览二手书信息交易功开放游客户成功登录进行发布二手书信息添加购物车填写订单等操作进完成二手书交易时拥中心
    二手书搜索功中户模糊查询者通类目查询搜索需二手书
    中心中户具修改信息理出售二手书理订单记录理联系方式功
    台购物车实现记录购买二手书信息户退出登录购物车数然存重新登录购物车存次添加二手书信息户直接购买二手书提交订单购买
    图书出售功包括中心户发布户根需求发布二手书出售信息进行理台台系统会理户出售图书
    订单理中理客户订单功理户订单功客户订单展示购买发布二手书订单户订单展示台购买发布二手书订单户修改删客户订单户订单法修改户间进行交易更加方便台中户订单理员台进行理
    台理系统理前台户系列操作系统处理前台数交互台理系统书籍类目理书籍理订单理户理等功模块台理系统设计图:

    图32 台理系统结构设计
    台理系统通否登录验证该户否理员登录成功理员台数进行更新操作实现系统日常维护
    322概念模型设计
    解户需求分析台分户理员订单二手书信息二手书类订单状态联系方式七实体
    需求分析结果基础数进行抽象处理首先制定局部ER图然局部ER图合全局ER图通样整体概念模型进行设计
    全局ER图图示:

    图33 全局ER图
    户实体包括户id户名密码真实姓名头邮箱属性
    理员实体包括理员id理员登录名理员密码属性
    二手书类目实体包括类目id类目名称属性
    联系方式实体包括户id联系方式id收货姓名收货址电话邮编属性
    订单实体包括订单id订单号户id联系方式id二手书编号二手书价格二手书数量订单状态id否确认支付方式单时间邮寄方式属性
    二手书实体包括二手书编号书名作者出版社图片简介供应类编号原价现价否架属性
    订单状态实体包括订单状态id状态名称属性
    323逻辑模型设计
    二手书销售台中包含七实体ER图转化概念关系模式关系模式表323示:
    表31 二手书销售台关系模型表

    提高数理查找效率时满足网站性实际需述关系模式做优化:
    1 订单理户信息理功需求订单信息表户信息表中联系方式相通订单信息表户信息表中联系方式单独摘出建立联系方式表达成简化数表目
    2 求户理订单实现功通二手书信息表中设置供应字段代表出售该二手书户供应字段值应应户id通获取查询二手书信息中供应字段值展示该户出售二手书订单
    324数库设计
    thinkphp50框架中创建二手书销售台数库方式两种种SQL原生语句创建种通phpMyAdmin创建Web接口理MySQL数库PhpMyAdminPHP语言编写软件工具优势网页服务器执行方便易高效[7]Web接口轻松输入复杂SQL语句佳方式尤进行导入导出数操作时phpMyAdmin轻松便利创建修改删数库数表
    数表数存储基单位数库中重基础操作象根述逻辑模型设计台数库需建立七数表:户信息表ob_user二手书信息表ob_book二手书类目表ob_bookclass联系方式表ob_contact订单表ob_order订单状态表ob_status理员信息表ob_admin表32表38分展示数表
    表32 户信息表


    表33 二手书信息表


    表34 二手书类目表


    表35 联系方式表

    表36 订单表


    表37 订单状态表


    表38 理员信息表


    4台实现
    台开发前期通户需求功需求整理台进行设计时完成数库中数表建立工作接台功进行实现
    41 ThinkPHP框架部署
    ThinkPHP支持种生产环境果生产环境开发环境匹配话ThinkPHP进行配置适应线生产环境台开发前需ThinkPHP50框架进行部署
    通URL进行重写方法隐藏indexphp文件Apahe服务器进行配置配置文件httpdconf中配置:

    Options +FollowSymlinks Multiviews
    RewriteEngine on

    RewriteCond {REQUEST_FILENAME} d
    RewriteCond {REQUEST_FILENAME} f
    RewriteRule ^(*) indexphp1 [QSAPTL]

    然注册路规简化URL址首先configphp中开启路强制模式种模式话必须精确定义访问址路规否法访问URL址种模式相普通模式会较安全
    'url_route_on' > true
    'url_route_must' > true
    ThinkPHP50路规定义根目录开始基模块名路命名标识唯路唯注册快速生成URL址台部分路规:
    Routeget('login''indexloginindex')
    Routepost('login''indexloginlogin')
    Routeget('logout''indexloginlogout')
    Routeget('register''indexregisterindex')
    Routepost('register''indexregistersave')
    Routeget('person''indexpersonindex')
    Routepost('person''indexpersonedit')
    Routeget('sell''indexpersonsell')
    Routepost('sell''indexpersonsave_sell')
    Routeget('search''indexindexindex')
    Routepost('search''indexindexsearch')
    Routeget('book''indexbookindex')
    Routeget('book_list''indexpersonbook_list')
    Routeget('cart''indexcartindex')
    Routeget('checkout''indexcheckoutindex')
    Routeget('index''indexindexindex')
    Routeget('bookclass''indexbookclassindex')
    台模板继承页面进行布局页面头部尾部重复台容部分定义区块(block)头部尾部基础模板样减少页面文件头部尾部重复子模板中extend标签继承base模板加载出整页面
    42前台功实现
    421台首页
    该二手书销售台首页综合性页面首页会展示台售二手书横幅幻灯片显示

    图41 二手书销售台首页界面
    422户注册户登录
    户台核心功时必须注册成台户否法购买出售图书出安全角度考虑注册成台户拥相关权限时方便台户进行理
    户通点击注册钮填写户信息进行注册 注册钮点击填写户信息通from表单传递RegisterController控制器save()方法会调User验证器验证信息合法性正确性户名否重复存非法字符等User验证器中定义验证规字段信息验证场景验证场景作场景中验证部分规非全部验证完信息户信息传入数库验证器代码:
    protected rule [
    'username' > 'require|length26' 字长26
    'realname' > 'require|length26' 字长26
    'email' > 'require|email' 验证否邮箱
    'password' > 'require|length615' 验证密码长度
    'confirmpassword' > 'require|length615|confirmpassword' 验证确认密码
    'captcha|captcha' > 'require|captcha' 验证码
    ]
    protected field [
    'username' > '户名'
    'realname' > '真实姓名'
    'email' > '邮箱'
    'password' > '密码'
    'confirmpassword' > '确认密码'
    'captcha' > '验证码'
    ]
    protected scene [
    'login' > ['username' 'password' 'captcha']
    'edit' > ['username' 'realname' 'email']
    ]
    保护账号安全保证密码安全性户注册时调password_hash()方法创建密码散列值散列值相较普通密码存放更加安全台数库中存放密码hash加密散列值户登录时需调phppassword_verify函数较输入密码数库中该户散列值判断密码输入否正确

    图42 户注册界面
    登录成功启动session会话户ID户名赋值前作域供户账号进行操作时服务器够识户退出登录删前作域清空session中户信息然跳转回首页等户次登录
    户登录功代码:
    public function login(){
    datainput('post')
    resultthis>validate(data'app\index\validate\Userlogin')
    if(result true){
    this>error(result)
    }
    userUserget(['username'>data['username']])
    if(empty(user) && password_verify(data['password']user>password))
    {
    Sessionset(usernamedata['username'])
    Sessionset(uiduser>id)
    this>success('登录成功''index')
    }else{
    this>error('户名密码错误')
    }
    }
    public function logout()
    {
    Sessiondelete('username')
    Sessiondelete('id')
    Sessiondelete('cart')
    this>success('退出成功' 'index')
    }

    图43 户登录界面
    423中心
    台中注册成户页面头部会出现helloxxx旁边中心入口点击进入中心信息进行修改添加头

    图44 户未登录前界面头部


    图45 户登录前界面头部
    信息中会展示户名真实姓名邮箱头户修改信息点击保存钮 PersonController控制器中index()方法from表单提交户信息数存入数库户表中
    具体代码:
    public function index()
    {
    uidSessionget('uid')
    userUserget(['id'>uid])
    this>assign([
    'users'>user
    ])
    if(request()>isPost()){
    datainput('post')
    处理图片传 判断否新图 果新图删旧图
    if (_FILES['image']['tmp_name']){
    oldStoreUserfield('image')>find(uid)
    oldStoreimgUPLODASoldStore['image']
    if (file_exists(oldStoreimg)){
    @unlink(oldStoreimg) 判断旧图否存存删旧图
    }
    data['image']this>upload()
    }
    修改前进行验证
    resultthis>validate(data'app\index\validate\Useredit')
    if(result true){
    this>error(result)
    }
    Sessionset(usernamedata['username'])
    saveUserwhere('id'uid)>update(data)
    if(save false){
    this>success('修改信息成功')
    }else{
    this>error('修改信息失败')
    }
    return
    }
    return view()
    }

    图46 信息界面
    中心发布理二手书够查二手书列表发售二手书修改发售二手书信息删发布二手书实现四功需Personcontroller中定义增删改查四方法book_list()add_book()edit_book()del_book()
    保存添加二手书页面保存信息头接受传图片时调控制器中upload()方法图片传服务器指定文件夹(uploads)中保存图片时需判断否新图新图删旧图保存新图保存前进行验证
    新增二手书功发布图书中实现点击发布图书填写发布二手书信息add_book()方法获取from表单中提交数通Book验证器验证成功保存数库二手书信息数表中Session类户id赋值前作域中时然返回图书列表页面

    图47 发布二手书信息界面
    图书列表中查发布二手书信息具体id书名作者出版社原价现价介绍属类目图片发布状态操作操作修改删两钮控制修改二手书删二手书功
    Personcontroller控制器中book_list()方法遍历数表book中该户全部发布二手书展示出分页技术方便户查

    图48 理二手书界面


    图49 修改二手书信息界面
    424图书分类功
    想短时间高效率查找需书籍时需图书分类功台十分重部分果没功意味着户需花费时间逐查找购买书籍户体验降低台性化设计体现出
    户进入台首页点击导航栏中二手书分类拉菜单中会显示台二手书类目根需进入相关类目页面查找需二手书

    图410 导航栏二手书分类界面
    425查找图书功
    台首页适应户搜索求提供模糊查询户查找需书籍输入部分信息搜索图书台提供类目模糊查询样户众二手书中快速准确找需书籍提升户体验户短时间实现查找务
    户点击搜索钮indexController控制器中search()方法会数库中二手书信息表中书名简介中匹配户输入查询信息查询会查询结果传递前台页面中展现查询结果前台页面展示分页技术便户操作提升户体验感
    功代码:
    public function search()
    {
    datainput('post')
    messagedata['message']
    booknew Book()
    Bookbook>whereOr('bookname''like'''message'')>whereOr('description''like'''message'')>paginate(6)
    pageBook>render()
    this>assign([
    'Book'>Book
    'page'>page
    ])
    return view('bookclass\index')
    }

    图411 图书查询结果界面
    426订单确认购物车功
    台购物车现实中逛超市时推购物车两者区存现实中虚拟储存户台挑选商品购物车电商网站搭建中基功户页面间跳转选购需二手书
    购物车模块功时保存户购买二手书中二手书包含数量价格书名信息方选择收货址支付方式等信息时中具删二手书清空购物车功
    户选中书选择立购买加入购物车立购买直接跳转确认订单页面填写收货址实现立购买功加入购物车台会判断该户购物车否存二手书果存增加二手书数量果存直接加入购物车
    功代码:
    public function addCart(bookIdbookNum1)
    {
    cartisset(_COOKIE['cart']) unserialize(_COOKIE['cart']) array()
    cart[bookId]+bookNum
    aMonthtime()+30*24*3600
    setcookie('cart'serialize(cart)aMonth'')
    }
    清空购物车
    public function clearCart(){
    setcookie('cart'''1'')
    }

    删条购物车记录
    public function delCart(bookId){
    cartisset(_COOKIE['cart']) unserialize(_COOKIE['cart']) array()
    unset(cart[bookId])
    aMonthtime()+30*24*3600
    setcookie('cart'serialize(cart)aMonth'')
    }

    修改购物车中商品数量
    public function updateCart(bookIdbookNum){
    cartisset(_COOKIE['cart']) unserialize(_COOKIE['cart']) array()
    cart[bookId]bookNum
    aMonthtime()+30*24*3600
    setcookie('cart'serialize(cart)aMonth'')
    }

    读取cookie获取购物车商品
    public function getBookListCart(){
    booknew Book()
    cartisset(_COOKIE['cart']) unserialize(_COOKIE['cart']) array()
    _cartarray()
    foreach (cart as k > v){
    bookInfobook>field('idbooknameimagenowprice')>find(k)
    _cart[k]['bookname']bookInfo['bookname']
    _cart[k]['image']bookInfo['image']
    _cart[k]['nowprice']bookInfo['nowprice']
    }
    return _cart
    }
    删购物车图书功点击删图书id传递控制器中delCart()方法判断cookie中否图书id话unset()进行删

    图412 购物车界面

    图413 确认订单界面
    427订单理功
    户买家卖家订单理分户订单客户订单两部分
    户订单理中查购买订单通数库订单表中查找户id展示该户订单页面中
    客户订单理中实现查订单修改订单删订单三功买家购买二手书确认订单信息法修改卖家允许修改删里户订单理修改删两功点击客户订单钮跳转客户订单理页面页面通session获前登录户id然数库二手书信息表中查找供应字段值等户id值二手书信息根订单号分组聚合查找出客户订单中二手书信息显示页面
    43台功实现
    台台理系统供理员访问操作数库提供书籍类目理书籍理户理订单理四功
    431书籍类目理
    书籍类目理通台添加类目编辑类目删类目前台首页展示类目进行处理二手书类目删功通点击删钮调控制器del()方法前类目id传del()方法del()方法根id数库中查找删数

    图414 二手书类目列表界面
    理员点击add钮添加二手书类目输入类目信息控制器调add()方法数存入数库列表界面中显示

    图415 添加二手书类目界面
    理员点击编辑钮修改二手书类目信息前类目id传控制器中edit()方法输入修改类目信息控制器调edit()方法根类目id数库中查询该类目原数进行更新列表界面中显示

    图416 编辑二手书类目界面
    432书籍理
    台C2C模式二手书销售基户发布销售书籍该书籍理功包括添加编辑户发布二手书信息理员拥架符合架图书求二手书权利书籍理实现图书架功通模型关联二手书信息表二手书类目表关联二手书列表中显示二手书属类目名称通模型关联二手书信息表户表关联二手书列表中显示二手书卖家
    二手书模型中关联二手书类目表户表关键代码:
    public function bookclass()
    {
    return this>BelongsTo('Bookclass''class_id''id')
    }
    public function user()
    {
    return this>BelongsTo('User''user_id''id')
    }

    图417 二手书理界面
    433订单理
    订单理功模块实现功:展示订单信息搜索订单信息通方输入框输入订单号收货名查询订单信息系统根提供订单号收货名查询订单控制器接受查询字段调方法查询然查询结果传递页面

    图418 订单理界面
    434户理
    户理功模块实现理台户功查户信息设理员两功点击户信息旁设理员钮户信息表中户名密码传入理员表中时户表身份更新理员该户登陆台进行理操作

    图418 更改户身份前户理界面
    理员通点击设理员钮户设理员某户理员操作栏设理员变更撤销理员户理员身份进行控

    图419 更改户身份户理界面

    5台功测试
    实现台完整性正确通台功规定条件进行测试查寻错误评估否满足设计求
    51 台功测试目标
    台功达成预计目标决定实施测试方法果针开发程进行测试话找台开发程中存错误果针台应中遇假设bug进行测试话户台时够规避掉错误安全保障
    52 台功测试方法
    现测试方法四种:静态测试方法动态测试方法黑盒测试方法白盒测试方法台测试方法黑盒测试法种方法通软件测试环境模拟见黑盒然数输入输出数输入数进行结果检查软件部功否运作正常果输出数预计数致话表明软件成功通测试果输出数预计数相表明软件程序部出现问题需快解决差值忽略
    521 注册登录功测试

    522 购物车功测试

    523 订单功测试

    524 图书功测试

    53 测试总结
    通二手书销售台部分功模块测试保证户台时避免必麻烦错误时保证台够正常运行保证性

    6总结
    时代日益变迁科技断发展进步二手书销售台出现闲置书籍处理方式提供种选择时卖家带真切收益减少书籍生产节约资源保护环境
    次文题目基web二手书销售台PHP编程语言相关计算机编程基础知识需求分析逻辑结构终设计BS架构模式基ThinkPHP50框架技术开发二手书销售台
    首先文通二手书销售台开发背景开发意义进行简阐述时二手书销售台行性进行研究阐明该台实际意义价值
    次台更户服务减少期时需麻烦该台进行需求分析明确台功需求户需求台运行环境开发环境完善初期台设计
    通二手书销售台需求进行设计实现功模块断优化


















    参考文献
    [1] 林杨 二手书交易台开发研究[J] 考试周刊 2012 000(025)105107
    [2]王利肖基B/S模式线旧书销售系统分析设计[J]计算机现代化2007(6)118119122
    [3] 郭妍 基BS架构购书网站系统设计实现[D]连交通学2017
    [4] 邓滔 SNS学生日常理系统中研究应[D]湖南学2013
    [5] 沈皎佶 基thinkphp网站容理框架开发[D]海师范学2015
    [6]黄颖 基ThinkPHP框架资讯类网站台理系统设计实现[D]首济贸易学2017
    [7]杨军 基Thinkphp框架校园二手图书交易系统设计实现[D]山东师范学2015











































    附 录

    附录1
    程序源代码

    前台控制器部分代码:
    BookclassControllerphp
    public function search()
    {
    BookBookwhere('status''1')>paginate(12)
    pageBook>render()
    this>assign([
    'Book'>Book
    'page'>page
    ])
    return view('search')
    }

    BookControllerphp
    class BookController extends Controller
    {
    public function index()
    {
    idinput('id')
    bookBookget(id)
    this>assign([
    'book'>book
    ])
    return view()
    }

    }
    CartControllerphp
    public function addtocart()
    {
    bookIdinput('id')
    bookNum1
    cartisset(_COOKIE['cart']) unserialize(_COOKIE['cart']) array()
    cart[bookId]+bookNum
    aMonthtime()+30*24*3600
    setcookie('cart'serialize(cart)aMonth'')
    return view('cart')
    }
    清空购物车
    public function clearCart(){
    setcookie('cart'''1'')
    }

    删条购物车记录
    public function delCart(bookId){
    cartisset(_COOKIE['cart']) unserialize(_COOKIE['cart']) array()
    unset(cart[bookId])
    aMonthtime()+30*24*3600
    setcookie('cart'serialize(cart)aMonth'')
    }

    修改购物车中商品数量
    public function updateCart(bookIdbookNum){
    cartisset(_COOKIE['cart']) unserialize(_COOKIE['cart']) array()
    cart[bookId]bookNum
    aMonthtime()+30*24*3600
    setcookie('cart'serialize(cart)aMonth'')
    }

    读取cookie获取购物车商品
    public function getBookListCart(){
    booknew Book()
    cartisset(_COOKIE['cart']) unserialize(_COOKIE['cart']) array()
    _cartarray()
    foreach (cart as k > v){
    bookInfobook>field('idbooknameimagenowprice')>find(k)
    _cart[k]['bookname']bookInfo['bookname']
    _cart[k]['image']bookInfo['image']
    _cart[k]['nowprice']bookInfo['nowprice']
    }
    return _cart
    }

    IndexControllerphp
    class IndexController extends Controller
    {
    **
    * 显示资源列表
    *
    * @return \think\Response
    *
    public function index()
    {
    BookBookwhere('status''1')>paginate(20)
    pageBook>render()
    this>assign([
    'Book'>Book
    'page'>page
    ])
    return view()
    }

    public function search()
    {
    datainput('post')
    messagedata['message']
    booknew Book()
    Bookbook>whereOr('bookname''like'''message'')>whereOr('description''like'''message'')>paginate(6)
    pageBook>render()
    this>assign([
    'Book'>Book
    'page'>page
    ])
    dump(Book)
    return view('bookclass\search')
    }

    }
    LoginControllerphp
    class LoginController extends Controller
    {
    **
    * 显示资源列表
    *
    * @return \think\Response
    *
    public function index()
    {

    return view()
    }

    public function login(){
    datainput('post')
    resultthis>validate(data'app\index\validate\Userlogin')
    if(result true){
    this>error(result)
    }
    userUserget(['username'>data['username']])
    if(empty(user) && password_verify(data['password']user>password))
    {
    Sessionset(usernamedata['username'])
    Sessionset(uiduser>id)
    this>success('登录成功''index')
    }else{
    this>error('户名密码错误')
    }
    }
    public function logout()
    {
    Sessiondelete('username')
    Sessiondelete('id')
    Sessiondelete('cart')
    this>success('退出成功' 'index')
    }

    }

    PersonControllerphp
    class PersonController extends Controller
    {
    **
    * 显示资源列表
    *
    * @return \think\Response
    *

    public function index()
    {
    uidSessionget('uid')
    userUserget(['id'>uid])
    this>assign([
    'users'>user
    ])
    if(request()>isPost()){
    datainput('post')
    处理图片传 判断否新图 果新图删旧图
    if (_FILES['image']['tmp_name']){
    oldStoreUserfield('image')>find(uid)
    oldStoreimgUPLODASoldStore['image']
    if (file_exists(oldStoreimg)){
    @unlink(oldStoreimg) 判断旧图否存存删旧图
    }
    data['image']this>upload()
    }
    修改前进行验证
    resultthis>validate(data'app\index\validate\Useredit')
    if(result true){
    this>error(result)
    }
    Sessionset(usernamedata['username'])
    saveUserwhere('id'uid)>update(data)
    if(save false){
    this>success('修改信息成功')
    }else{
    this>error('修改信息失败')
    }
    return
    }
    return view()
    }

    public function sell(){
    bookclassListBookclassselect()
    this>assign('bookclassList'bookclassList)
    return view()
    }
    public function add_book()
    {
    datainput('post')
    uidSessionget('uid')
    处理图片传
    if (_FILES['image']['tmp_name']){
    data['image']this>upload()
    }
    validatevalidate('Book')
    if(validate>check(data)){
    this>error(validate>getError())
    }
    addBookinsert(data)
    if(add){
    this>success('发布二手书成功''book_list')
    }else{
    this>error('发布二手书失败')
    }
    return view('book_list')
    }
    public function edit()
    {
    if(request()>isPost())
    {
    datainput('post')
    if (_FILES['image']['tmp_name']){
    olddb('book')>field('image')>find(data['id'])
    oldimgUPLODASold['image']
    if (file_exists(oldimg)){
    @unlink(oldimg) 判断旧图否存存删旧图
    }
    data['image']this>upload()
    }
    validatevalidate('Book')
    if(validate>check(data)){
    this>error(validate>getError())
    }
    bookBookcreate('user_id'uid)
    saveBookupdate(data)
    if(save){
    this>success('修改二手书信息成功''book_list')
    }else{
    this>error('修改二手书信息失败')
    }
    return
    }
    uidSessionget('uid')
    idinput('id')
    bookBookwith('bookclass')>find(id)
    bookclassListBookclassselect()
    this>assign([
    'book'>book
    'bookclassList'>bookclassList
    ])
    return view()
    }
    public function book_list()
    {
    uid Sessionget('uid')
    listBookwith('bookclass')>where('user_id'uid)>paginate(6)
    pagelist>render()
    this>assign([
    'list'>list
    'page'>page
    ])
    return view('book_list')
    }

    public function del_book(id)
    {
    delBookdestroy(id)
    if(del){
    this>success('删书籍成功''book_list')
    }else{
    this>error('删书籍失败')
    }
    }
    public function upload(){
    获取表单传文件 例传001jpg
    file request()>file('image')

    移动框架应根目录publicuploads 目录
    if(file){
    info file>move(ROOT_PATH 'public' DS 'uploads')
    if(info){
    return info>getSaveName()
    }else{
    传失败获取错误信息
    echo file>getError()
    die
    }
    }
    }
    }

    RegisterControllerphp
    class RegisterController extends Controller
    {
    **
    * 显示资源列表
    *
    * @return \think\Response
    *
    public function index()
    {

    return view()
    }


    public function save()
    {
    datainput('post')
    resultthis>validate(data'app\index\validate\User')
    if(result true)
    {
    this>error(result)
    }
    usernew User()
    user>usernamedata['username']
    user>passwordpassword_hash(data['password']PASSWORD_BCRYPT)
    user>emaildata['email']
    user>realnamedata['realname']
    if(user>save()) {
    this>success('注册成功' '\login')
    }else{
    this>error('注册失败')
    }
    }

    }


    台控制器部分代码:
    BookclassControllerphp
    class BookclassController extends Controller
    {
    public function lst()
    {
    bookclassListdb('bookclass')>order('id DESC')>paginate(6)
    pagebookclassList>render()
    this>assign([
    'bookclassList'>bookclassList
    'page'>page
    ])
    return view('list')
    }
    public function add()
    {
    if(request()>isPost()){
    datainput('post')
    添加前进行验证
    resultthis>validate(data'app\admin\validate\Bookclass')
    if(result true)
    {
    this>error(result)
    }
    adddb('bookclass')>insert(data)
    if(add){
    this>success('添加类目成功''adminbookclass')
    }else{
    this>error('添加类目失败')
    }
    return
    }
    return view()
    }
    public function edit()
    {
    if(request()>isPost()){
    datainput('post')
    修改前进行验证
    resultthis>validate(data'app\admin\validate\Bookclass')
    if(result true)
    {
    this>error(result)
    }
    savedb('bookclass')>update(data)
    if(save false){
    this>success('修改二手书类目成功''adminbookclass')
    }else{
    this>error('修改二手书类目失败')
    }
    return
    }
    idinput('id')
    bookclassdb('bookclass')>find(id)
    this>assign([
    'bookclass'>bookclass
    ])
    return view()
    }

    public function del(id)
    {
    deldb('bookclass')>delete(id)
    if(del){
    this>success('删二手书类目成功''adminbookclass')
    }else{
    this>error('删二手书类目失败')
    }
    }

    }

    BookControllerphp
    class BookController extends Controller
    {
    public function lst()
    {
    bookListdb('book')>order('id DESC')>paginate(6)
    bookListBookwith('bookclass''user')>paginate(6)
    pagebookList>render()
    this>assign([
    'bookList'>bookList
    'page'>page
    ])
    return view('index')
    }
    public function del(id)
    {
    deldb('book')>delete(id)
    if(del){
    this>success('删二手书成功''adminbook')
    }else{
    this>error('删二手书失败')
    }
    }
    }

    OrderControllerphp
    class OrderController extends Controller
    {
    public function lst()
    {
    orderListOrderwith('book''status''user')>paginate(6)
    pageorderList>render()
    this>assign([
    'orderList'>orderList
    'page'>page
    ])
    return view('index')
    }
    }

    userControllerphp
    class userController extends Controller
    {
    public function lst()
    {
    userListUserpaginate(6)
    pageuserList>render()
    this>assign([
    'userList'>userList
    'page'>page
    ])
    return view('index')
    }
    public function edit(id)
    {
    adminUserget(id)
    addAdmincreate([
    'username' > admin>username
    'password' > admin>password
    ])
    editUserwhere('id'id)>update(['status'> 1])
    if(add&&edit){
    this>success('成功设置理员''adminuser')
    }else{
    this>error('设置理员失败')
    }
    return
    }
    public function del(id)
    {
    userUserget(id)
    delAdminwhere('username'user>username)>delete()
    editUserwhere('id'id)>update(['status'> 0])
    if(del&&edit){
    this>success('成功撤销理员''adminuser')
    }else{
    this>error('撤销理员失败')
    }
    return
    }
    }


    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 5 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于web的易销售网站的设计与实现

    摘要本文设计并实现了基于Web的销售管理系统,从前景的介绍,到各个模块的介绍,再到系统的设计,最后到系统的测试。简述系统的业务和设计的实现。易销售系统属于后台管理系统,而后台管理系统有不同的侧...

    2年前   
    534    0

    基于web学生成绩管理系统设计与实现

    随着计算机技术在各行各业的广泛应用,将计算机技术应用到学校中去,将大大提高学校管理的效率。学生成绩管理系统将在提高学校管理效率中发挥重要作用。

    3年前   
    939    0

    基于JAVA WEB的考勤系统设计与实现

    基于 JAVA WEB 的考勤系统设计和实现Design and Implementation of Attendance System Based on JAVA WEB摘要科技的发展,带动...

    10个月前   
    358    0

    基于Web的作业系统设计与开发

    基于Web的作业系统开发与设计基于Web的作业系统开发与设计摘 要本作业系统是基于原有的教学管理模式,通过构建B/S架构,使用Java Server page(简称“JSP”)为本设计的前台...

    1年前   
    276    0

    基于web的驴友社交网站设计与实现

    近十年来,随着科技地发展进步,各方面都取得了排山倒海的变化。互联网的七通八达,可以让五湖四海的人们在任何时间和地点进行交流,互联网上的社交似乎成为了主流。所以,以前以实体店为主的旅游社似乎也逐渐...

    3年前   
    801    0

    基于web的旅游网站设计与实现

    随着经济和交通的快速发展,人们对于生活的追求不再停留在物质层面,而是开始了娱乐和精神层面的追求。旅游是现在大多数人在长假期选择的度过方式。如何快速获取各地最新的旅游信息以获得更好的旅游体验便成为旅游者的需求。

    3年前   
    1764    0

    基于WEB的图书管理系统的设计与实现课程设计

    软件工程课程设计报告基于WEB的图书信息管理系统的设计与实现所 在 学 院 信息科学技术学院 专 业 名 称 计算机科学与技术 ...

    3年前   
    897    0

    基于Web技术的驾校考试系统的设计与实现毕业设计

    基于Web技术的驾校考试系统的设计与实现毕业设计 摘 要 在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网上考试则是网络技术一个很重要的发展方向。网上考试一...

    5年前   
    1581    0

    基于WEB的停车场管理系统设计和实现毕业设计

    20XX 届 毕 业 论 文(设计)论文(设计)题目基于WEB的停车场管理系统的设计和实现院系名称计算机科学与技术系专业(班级)计算机科学与技术2005级本科班姓名(学号) 指导教师 ...

    3年前   
    699    0

    基于web的图书管理系统

    基于Web的图书管理系统目前,信息时代是这个社会的主旋律,社会的各个区域和领域都因为信息的技术改革而发生了新的变化。跟上时代的步伐,因为整个科技社会的变化和发展很快,增强信息化公司的竞争能力,...

    3年前   
    791    0

    基于Web的学生信息管理系统

    在现如今这个网络技术高度普及和信息全球化的年代,信息化的程度和互联网技术在国际竞争中充当着重要的角色,华为5G的实例告诉我们,谁先掌握技术谁就有话语权。

    3年前   
    734    0

    基于JavaEE平台的设计资源交易平台的设计与实现

    中国因改革开放政策实施的缘故,社会经济水平与日俱增,人民的消费水平也随之升高,中国正在经历前所未有的消费升级,越来越多的消费者在满足基本物质需求的基础上追求精致生活。

    3年前   
    487    0

    基于Java技术的Web应用设计模型的比较研究

     中文翻译 基于Java技术的Web应用设计模型的比较研究 来源:School of Computer Science and Engineering University of New So...

    5年前   
    1426    0

    毕业论文:基于Web的办公自动化系统设计与实现

    基于Web的办公自动化系统设计的主要目的是利用现代的互联网技术,采用人机对话方式为办公人员之间搭建一个互动平台。实现无纸化办公和多部门间协同办公,数据存储安全可靠的要求,在降低办公成本的同时,也...

    5年前   
    1679    0

    基于web的驾校考试管理系统设计与实现

    本文主要从驾校考试管理系统的选题,需求分析而出发,根据现有的驾校系统对其进行功能模块设计。系统实现方面,基于B/S架构,而且在开发技术方面使用了jsp使得其开发更为简化,以Tomcat作为服务器...

    3年前   
    580    0

    基于Android的志愿活动平台的设计与实现

     基于Android的志愿活动平台的设计与实现 ...

    11个月前   
    467    0

    基于WEB的办公自动化管理系统

    本科毕业论文〔设计〕论文〔设计〕题目:基于WEB的办公自动化管理系统学  院:贵州大学职业技术学院专  业:计算机科学与技术  班  级:计算机031班   学  号:0314171104学生...

    2年前   
    360    0

    基于WEB SERVICE技术新华书店连锁系统

    分类号 …………………….. 密级……………………U D C …………………… 编号…………………… 中 南 大 学C...

    2年前   
    340    0

    基于Java Web的旅游信息网站

    基于Java Web的旅游信息网站Tourism information website based on Java Web内容摘要本次开发的网站是基于JSP/Servlet的 WEB旅游应用...

    10个月前   
    290    0

    建构商务服务科学信息WEB教学平台

    建構商務服務科學信息WEB教學平台與人才培育計劃系 統 簡 介目 錄壹、 計畫名稱及摘要………………………………………………..1貳、 背景及現況……………………………………...

    2年前   
    299    0

    文档贡献者

    爱***享

    贡献于2021-09-17

    下载需要 5 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档