PHP网上购物商城系统--附源码00049

基于PHP的网上购物商城系统设计与实现

摘 要

随着互联网的发展和电子商务的迅猛增长,传统购物方式逐渐暴露出时间、空间和信息处理等方面的局限性。消费者对便捷、高效、安全的购物体验需求日益增长,促使电子商务平台成为现代购物的重要渠道。因此,设计与开发一个基于PHP的网上购物商城系统显得尤为重要。该系统能够打破传统购物方式的瓶颈,提供便捷的购物流程与个性化服务,满足商家和消费者对现代购物体验的需求。

本系统采用PHP语言进行开发,结合ThinkPHP框架实现业务逻辑,MySQL数据库用于数据存储,协同过滤算法则用于商品的个性化推荐。管理员功能包括后台管理、用户管理、订单管理、商城公告发布、会员等级管理等,能够有效提升系统运营效率和用户管理体验。注册用户可以通过系统实现商品浏览、购买、评价、收藏、点赞等功能,享受个性化的商品推荐与购物体验。系统的核心功能还包括购物车、订单配送、网站留言等,能够实现完整的线上购物流程。本论文的设计与实现旨在构建一个高效、安全、便捷的购物平台,不仅为商家提供了高效的管理工具,也为消费者提供了优化的购物体验,推动了电子商务的发展。

关键词:PHP语言;协同过滤算法网上购物商城系统

Abstract

With the development of the Internet and the rapid growth of e-commerce, the limitations of traditional shopping methods in time, space and information processing are gradually exposed. Consumers' increasing demand for convenient, efficient, and safe shopping experiences has made e-commerce platforms an important channel for modern shopping. Therefore, designing and developing an online shopping mall system based on PHP is particularly important. This system can break through the bottleneck of traditional shopping methods, provide convenient shopping processes and personalized services, and meet the needs of merchants and consumers for modern shopping experiences.

This system is developed using PHP language, combined with ThinkPHP framework to implement business logic, MySQL database for data storage, and collaborative filtering algorithm for personalized product recommendation. The administrator functions include backend management, user management, order management, mall announcement publishing, membership level management, etc., which can effectively improve system operation efficiency and user management experience. Registered users can enjoy personalized product recommendations and shopping experiences by browsing, purchasing, evaluating, bookmarking, liking, and other functions through the system. The core functions of the system also include shopping cart, order delivery, website messaging, etc., which can achieve a complete online shopping process. The design and implementation of this paper aim to build an efficient, secure, and convenient shopping platform, which not only provides efficient management tools for merchants, but also optimizes the shopping experience for consumers, promoting the development of e-commerce.

Keywords: PHP language; Collaborative filtering algorithm; Online shopping mall system;

目录

摘 要

Abstract

1 绪论

1.1 研究背景

1.2研究意义

1.3国内外研究现状

2开发环境及相关技术介绍

2.1 MySQL数据库

2.2 PHP描述

2.3 Thinkphp框架介绍

2.4协同过滤算法介绍

3 系统需求分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2经济可行性

3.1.3操作可行性

3.2 功能需求分析

3.3 非功能性需求分析

3.4系统角色用例分析

3.4.1普通用户用例

3.4.2管理员用例

4 系统概要设计

4.1系统功能结构设计

4.2系统数据库设计

4.2.1数据库概念结构设计

4.2.2数据库逻辑结构设计

5 系统详细设计与实现

5.1用户功能模块

5.1.1首页界面

5.1.2注册界面

5.1.3登录界面

5.1.4 网站留言

5.1.5 商城中心

5.1.6商城管理

5.2管理员功能模块

5.2.1后台首页

5.2.2系统用户

5.2.3系统管理

5.2.4留言管理

5.2.5商城管理

6系统的测试

6.1测试的目的

6.2 系统测试用例

6.3 系统测试结果

7 结论

参考文献

致谢

1 绪论

    1. 研究背景

随着互联网技术和电子商务的快速发展,传统的零售购物模式逐渐暴露出其局限性。传统购物方式受制于时间、地点等因素,消费者需要花费大量的时间和精力才能完成购物,且商品选择受限,信息传递不及时,购物体验较差。与此同时,商家也面临着库存管理、销售数据分析等问题,无法有效利用现代信息技术提升运营效率和客户体验[1]。因此,面对这些问题,基于PHP的网上购物商城系统的设计与实现应运而生。通过在线平台,消费者可以随时随地浏览商品、比较价格、下单购买,同时商家能够通过后台管理系统实时处理订单、管理库存、发布商品信息,从而提升效率并优化购物体验。

该课题的提出,不仅旨在解决传统购物方式中的种种不足,还通过技术创新来构建一个高效、智能的电子商务平台,以满足现代消费者对便捷购物的需求[2]。同时,系统的个性化推荐功能、精准的数据分析与处理,也为商家提供了全新的商业运营方式,进一步推动了电子商务的发展和创新。

1.2研究意义

基于PHP的网上购物商城系统的设计与实现,为电子商务领域带来了新的理论探讨和技术实现方案。通过采用ThinkPHP框架和MySQL数据库,该研究展示了如何高效地构建一个稳定、可扩展的在线购物平台。此外,引入协同过滤算法进行个性化推荐,不仅丰富了推荐系统的理论基础,也为理解用户行为模式提供了新视角[3]。此研究有助于深化对现代信息技术在电子商务中应用的理解,特别是在提升用户体验和满意度方面,为学术界提供了宝贵的案例分析和理论支持。它推动了电子商务技术的发展,并为进一步探索智能化、个性化的电商服务奠定了基础。

从实践角度来看,设计并实现基于PHP的网上购物商城系统极大地改善了传统零售业面临的诸多挑战,如营业时间和空间限制、信息不对称等。本系统为企业提供了一个强大的在线销售平台,使商家能够突破地理界限,接触更广泛的客户群体,提高市场竞争力[4]。同时,通过个性化的商品推荐功能,系统可以显著提升用户的购物体验,增加用户的忠诚度和转化率。对于企业来说,系统的后台管理功能简化了商品管理、订单处理及客户服务等流程,有效降低了运营成本,提升了工作效率和服务质量[5]。综上所述,这一系统的实施不仅促进了电子商务行业的健康发展,也为企业实现数字化转型提供了有力支持。

1.3国内外研究现状

在国内,电子商务的发展迅速,推动了网上购物商城系统的不断进步。以阿里巴巴的淘宝和京东为例,这两个平台不仅代表了国内电子商务的高水平发展,也展示了基于PHP及其他现代技术框架构建大规模电商系统的能力[6]。这些系统通过集成大数据分析、云计算等先进技术,实现了高效的商品管理、用户行为分析及个性化推荐等功能。优点在于它们能够处理海量数据,提供稳定的在线服务,并且支持高并发访问。然而,不足之处在于,对于小型企业和创业公司而言,这些系统的复杂性和成本可能过高,难以直接应用或定制化开发。

在国外,亚马逊和eBay是两个具有代表性的网上购物商城系统。亚马逊以其先进的物流体系和强大的云计算服务(AWS)著称,而eBay则在二手商品交易和个人卖家市场方面有着深厚的积累[7]。这些系统同样利用了最新的信息技术,如机器学习算法用于推荐系统优化,以及区块链技术确保交易的安全性和透明度。其优势在于高度的技术集成和用户体验优化,但缺点是,由于法规差异和市场环境的不同,这些系统在不同国家和地区可能面临适应性挑战,特别是隐私保护和数据安全方面的法律要求。

总体来看,国内外的网上购物商城系统都在向更加智能化、个性化的方向发展。国内系统倾向于结合本地市场的特点,快速响应市场需求变化,而在技术创新上可能稍显保守。国外系统则更多地关注于全球市场的扩展和技术前沿的应用,但在适应地方文化和法规时可能会遇到一些障碍[8]。无论是国内还是国外的研究和发展趋势都表明,未来的网上购物商城系统将更加注重用户体验的提升、数据安全的保障以及跨文化的适应能力。同时,随着新兴技术如人工智能、物联网等的发展,预计这些系统将进一步增强其功能和服务范围。

2开发环境及相关技术介绍

2.1 MySQL数据库

MySQL数据库已经成为网络上的一种强大的工具,它能够支持多个用户,并且能够根据客户端和服务端的需求进行调整,从而满足不同的需求。在这里,服务端和客户端只是一种软件上的概念,而我们所使用的计算机硬件则没有必要完全相互匹配。

MySQL作为一个受到广泛认可的开放式DBMS,其卓越的性能和易于操作的特性,以及其在多种操作环境中的灵活性,让其成为了众多AP中的首选。此外,MySQL还具有良好的跨平台性,让软件开发人员对其有着极高的评价。与传统的关联式数据库系统形式大相径庭,MySQL拥有一套完善的数据库管理策略,以确保用户的安全、稳健、安全。MySQL具备良好的容错、安全、快速、稳健的特点,使得mysql成为一款极其实用的数据库管理工具。

MySQL拥有一种独特的权限分配机制,可以根据用户的身份和业务逻辑,为用户提供更多的选择,从而大大提高了MySQL的安全性和完整性,远超过其他关系型数据库。

MySQL具有强大的功能,能够处理各种数据类型,包括动态、静态、多种语言,从而使用户能够轻松访问多种数据。

MySQL具有多种功能,它能够支持多种平台的开发,并且支持多种编程语言,使得用户能够轻松访问和使用MySQL数据库。

2.2 PHP描述

PHP采用函数或者过程来解析对于数据的操作,但又把数据和函数之间相互分开,这样并不利于维护,并会增加程序的工作量。而面向对象的编程将程序的函数和函数对于数据的操作封装在一个类中,作为一个整体来处理。所以PHP语言是主要通过面向对象来实现编程,并且摒除了C++语言中的指针、多继承等比较难理解部分,创造出了自身独有的单继承、多接口、高内聚、低耦合等特性。

PHP技术对动态Web页面的开发作用简直是举足轻重。可以很快的响应到客户端的发送请求。是甲骨文公司旗下的IT及互联网技术服务公司Sun Microsystems公司主导并创立的动态网页技术的标准。而且能依据请求内容动态地生成XMLHTML,为用户的网络请求提供技术服务,而且可以与服务器上的其它PHP程序共同处理先对复杂的业务需求。

PHP主要优势如下:

(1)一旦程序有一次成功的编写,就能在多处运行起来。

(2)支持面特别广,许多平台已经引入该技术。

2.3 Thinkphp框架介绍

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib标签库)、RoRORM映射ActiveRecord模式。

ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySqlPgSQLSqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

2.4协同过滤算法介绍

协同过滤算法(Collaborative Filtering, CF)是一种广泛应用于推荐系统的算法,主要通过分析用户历史行为或相似用户的行为来进行个性化推荐。该算法基于一个核心假设:如果用户A与用户B在过去的行为或兴趣上有相似之处,那么他们在未来的行为或兴趣也可能相似。协同过滤算法分为两种主要类型:基于用户的协同过滤和基于物品的协同过滤。基于用户的协同过滤通过寻找与目标用户兴趣相似的其他用户进行推荐,而基于物品的协同过滤则通过计算物品之间的相似度,向用户推荐与他们之前喜欢的物品相似的其他物品。

协同过滤算法的优点在于其能够根据实际用户的行为自动发现兴趣偏好,而无需依赖物品的具体属性信息。然而,该算法也存在一些缺点,例如冷启动问题(对于新用户或新物品,推荐效果较差)和稀疏性问题(用户与商品之间的互动较少,导致计算相似度时数据较为稀疏)。尽管如此,协同过滤算法仍然是推荐系统中最常用的技术之一,广泛应用于电商平台、社交媒体、视频推荐等领域,为用户提供个性化的推荐服务。

3 系统需求分析

系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。

3.1 可行性分析

系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及操作层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的

3.1.1 技术可行性

基于PHP的网上购物商城系统采用了成熟稳定的ThinkPHP框架和MySQL数据库,保证了系统的高效性和可靠性。协同过滤算法的应用使得个性化推荐功能得以实现,提升了用户体验。此外,现代Web开发技术的支持确保了系统的可扩展性和维护性,使其能够适应不断变化的技术环境和用户需求。通过利用现有的开源技术和工具,项目在技术实现上具有较高的可行性。

3.1.2经济可行性

实施基于PHP的网上购物商城系统能够显著降低运营成本,特别是对于小型企业而言,这种低成本高效益的解决方案非常有吸引力。该系统减少了实体店面的需求,降低了人力成本,并提高了市场覆盖面。同时,个性化的推荐服务有助于提高用户的购买率和忠诚度,进一步增加收入。长远来看,投资于这样一个系统不仅能快速回收成本,还能为企业带来可观的经济效益。

3.1.3操作可行性

此网上购物商城系统设计直观、操作简便,无论是管理员还是普通用户都能轻松上手。管理员可以通过后台管理系统方便地进行商品管理、订单处理及客户沟通;而用户则能享受便捷的商品浏览、搜索、购买等服务。系统的用户界面友好,响应迅速,极大地提升了用户的操作体验。因此,无论是在管理效率还是用户体验方面,该系统都展现了良好的操作可行性。

3.2 功能需求分析

本系统按照功能分为管理员和普通用户两种角色,角色功能如下:

  1. 注册用户:

注册登录:用户可以通过注册登录功能,创建个人账户,登录后可以管理个人信息,享受更多专属服务。

首页:首页是用户进入商城后看到的第一个页面,提供了商城的导航入口和最新活动信息。

商城公告:商城公告栏目会发布最新的商城动态和重要通知,用户可以在这里查看到商城的最新消息。

商城资讯:商城资讯栏目提供了丰富的商品和活动信息,用户可以对喜欢的内容进行点赞、收藏和评论,与他人分享自己的看法。

网站留言:网站留言功能允许用户在商城内发布留言,与其他用户交流心得,或是对商城提出建议和反馈。

商城中心:商城中心是用户购物的核心区域,提供了基于协同过滤算法的个性化喜好推荐,用户可以对商品进行点赞、收藏、加入购物车、立即购买,以及在购买后进行评价。

我的账户:在“我的账户”中,用户可以方便地修改个人资料和密码,确保账户的安全性和个人信息的准确性。

个人中心:个人中心是用户管理个人信息和订单的集中地,用户可以查看个人首页、管理订单配送情况、查看和管理网站留言、管理收藏的商品以及管理自己的评论。

2.管理员:

登录:管理员可以通过输入正确的用户名和密码登录到后台管理系统,确保系统的安全性。

后台首页:后台首页提供了系统的概览信息,包括最新销售数量、销售额统计等关键指标,帮助管理员快速了解商城运营状况

系统用户管理:这里可以查看和管理所有注册用户的信息,包括管理员和普通注册用户,方便进行权限分配和用户维护。

留言管理:管理员可以查看用户留下的所有留言,并根据需要进行回复,以保持与用户的良好互动。

商城公告管理:管理员可以发布和编辑商城的最新公告,确保用户能够及时了解到商城的重要信息和活动。

资源管理:管理员可以管理商城资讯内容,包括添加、编辑和删除资讯文章,以及对资讯进行分类管理,方便用户浏览。

商城管理:这是核心管理模块,管理员可以对商城中心进行设置,管理商品分类列表,处理订单列表,跟踪订单配送状态,以及设置和调整会员等级,以满足不同用户的需求。

3.3 非功能性需求分析

网上购物商城系统的非功能性需求比如自助网上购物商城系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:

3-1 网上购物商城系统非功能需求表

安全性

主要指网上购物商城系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指网上购物商城系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响网上购物商城系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着网上购物商城系统的页面展示内容进行操作,就可以了。

可维护性

网上购物商城系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

3.4系统角色用例分析

3.4.1普通用户用例

注册用户用例图如图3-1所示

3-1 注册用户用例图

3.4.2管理员用例

后台主要是管理员的角色功能,用户不能进入后台,后台管理员用例图如图3-2所示

3-2 管理员用户用例图

4 系统概要设计

4.1系统功能结构设计

系统在结构上的设计至关重要,要考虑周全,设计全面,一个完善的结构体系,能够满足用户在使用时的各种需求,这样会让提高程序的使用率,保证程序被长久的利用。在设计网上购物商城系统的结构时,也列入重点,采用模块化的方法来进行设计,即首先将大模块确定下来,再慢慢的将大模块进行补充完善,向下分支出小模块,一起共同组成的系统的结构体系,下图是该网上购物商城系统的结构设计图,直观明了的可以看出本项目程序的功能。

网上购物商城系统功能结构图如图4-1所示。

4-1 网上购物商城系统功能结构图

4.2系统数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

4.2.1数据库概念结构设计

在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称。下面是整个网上购物商城系统中主要的数据库表总E-R实体关系图。

4-2 系统总E-R关系图

4.2.2数据库逻辑结构设计

在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本网上购物商城系统的主要的数据库表如下:

表 4-1-access_token(登陆访问时长)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

token_id

int

临时访问牌ID

2

token

varchar

64

临时访问牌

3

info

text

65535

信息

4

maxage

int

最大寿命:默认2小时

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

user_id

int

用户编号

表 4-2-address(收货地址)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

address_id

int

收货地址

2

name

varchar

32

姓名

3

phone

varchar

13

手机

4

postcode

varchar

8

邮编

5

address

varchar

255

地址

6

user_id

mediumint

用户ID

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

9

default

tinyint

默认判断

表 4-3-article(文章)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

article_id

mediumint

文章id

2

title

varchar

125

标题

3

type

varchar

64

文章分类

4

hits

int

点击数

5

praise_len

int

点赞数

6

create_time

timestamp

创建时间

7

update_time

timestamp

更新时间

8

source

varchar

255

来源

9

url

varchar

255

来源地址

10

tag

varchar

255

标签

11

content

longtext

4294967295

正文

12

img

varchar

255

封面图

13

description

text

65535

文章描述

表 4-4-article_type(文章分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

smallint

分类ID

2

display

smallint

显示顺序

3

name

varchar

16

分类名称

4

father_id

smallint

上级分类ID

5

description

varchar

255

描述

6

icon

text

65535

分类图标

7

url

varchar

255

外链地址

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-5-auth(用户权限管理)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

auth_id

int

授权ID

2

user_group

varchar

64

用户组

3

mod_name

varchar

64

模块名

4

table_name

varchar

64

表名

5

page_title

varchar

255

页面标题

6

path

varchar

255

路由路径

7

parent

varchar

64

父级菜单

8

parent_sort

int

父级菜单排序

9

position

varchar

32

位置

10

mode

varchar

32

跳转方式

11

add

tinyint

是否可增加

12

del

tinyint

是否可删除

13

set

tinyint

是否可修改

14

get

tinyint

是否可查看

15

field_add

text

65535

添加字段

16

field_set

text

65535

修改字段

17

field_get

text

65535

查询字段

18

table_nav_name

varchar

500

跨表导航名称

19

table_nav

varchar

500

跨表导航

20

option

text

65535

配置

21

create_time

timestamp

创建时间

22

update_time

timestamp

更新时间

表 4-6-cart(购物车)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

cart_id

int

购物车ID

2

title

varchar

64

标题

3

img

varchar

255

图片

4

user_id

int

用户ID

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

state

int

状态:使用中,已失效

8

price

double

单价

9

price_ago

double

原价

10

price_count

double

总价

11

num

int

数量

12

goods_id

mediumint

商品id

13

type

varchar

64

商品分类

14

description

varchar

255

描述

表 4-7-code_token(验证码)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

code_token_id

int

验证码ID

2

token

varchar

255

令牌

3

code

varchar

255

验证码

4

expire_time

timestamp

失效时间

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

表 4-8-collect(收藏)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

collect_id

int

收藏ID

2

user_id

int

收藏人ID

3

source_table

varchar

255

来源表

4

source_field

varchar

255

来源字段

5

source_id

int

来源ID

6

title

varchar

255

标题

7

img

varchar

255

封面

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-9-comment(评论)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

comment_id

int

评论ID

2

user_id

int

评论人ID

3

reply_to_id

int

回复评论ID

4

content

longtext

4294967295

内容

5

nickname

varchar

255

昵称

6

avatar

varchar

255

头像地址

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

9

source_table

varchar

255

来源表

10

source_field

varchar

255

来源字段

11

source_id

int

来源ID

表 4-10-goods(商品信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

goods_id

mediumint

产品ID

2

title

varchar

125

标题

3

img

text

65535

封面图:用于显示于产品列表页

4

description

varchar

255

描述

5

price_ago

double

原价

6

price

double

卖价

7

sales

int

销量

8

inventory

int

商品库存

9

type

varchar

64

商品分类

10

hits

int

点击量

11

content

longtext

4294967295

正文

12

img_1

text

65535

主图1

13

img_2

text

65535

主图2

14

img_3

text

65535

主图3

15

img_4

text

65535

主图4

16

img_5

text

65535

主图5

17

create_time

timestamp

创建时间

18

update_time

timestamp

更新时间

19

customize_field

text

65535

自定义字段

20

source_table

varchar

255

来源表

21

source_field

varchar

255

来源字段

22

source_id

int

来源ID

23

user_id

int

添加人

表 4-11-goods_type(商品类型)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

int

商品分类ID

2

father_id

smallint

上级分类ID

3

name

varchar

255

商品名称

4

desc

varchar

255

描述

5

icon

varchar

255

图标

6

source_table

varchar

255

来源表

7

source_field

varchar

255

来源字段

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-12-hits(用户点击)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

hits_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

表 4-13-logistics_delivery(物流配送)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

logistics_delivery_id

int

物流配送ID

2

order_number

varchar

64

订单号

3

product_name

varchar

64

商品名称

4

purchase_quantity

varchar

64

购买数量

5

total_transaction_amount

double

交易总额

6

the_date_of_issuance

date

发货日期

7

delivery_number

varchar

30

配送订单

8

ordinary_users

int

普通用户

9

shipping_address

varchar

64

收货地址

10

delivery_status

varchar

64

配送状态

11

signing_status

varchar

64

签收状态

12

recommend

int

智能推荐

13

contact_name

varchar

255

联系人名字

14

merchant_id

int

商家id

15

create_time

datetime

创建时间

16

update_time

timestamp

更新时间

表 4-14-mall_center(商城中心)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

mall_center_id

int

商城中心ID

2

product_code

varchar

64

商品编号

3

hits

int

点击数

4

collect_len

int

收藏数

5

comment_len

int

评论数

6

recommend

int

智能推荐

7

cart_title

varchar

125

标题

8

cart_img

text

65535

封面图

9

cart_description

varchar

255

描述

10

cart_price_ago

double

原价

11

cart_price

double

卖价

12

cart_inventory

int

商品库存

13

cart_type

varchar

64

商品分类

14

cart_content

longtext

4294967295

正文

15

cart_img_1

text

65535

主图1

16

cart_img_2

text

65535

主图2

17

cart_img_3

text

65535

主图3

18

cart_img_4

text

65535

主图4

19

cart_img_5

text

65535

主图5

20

create_time

datetime

创建时间

21

update_time

timestamp

更新时间

表 4-15-message(留言板)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

message_id

int

留言板ID

2

user_id

int

用户ID

3

title

varchar

64

标题

4

content

longtext

4294967295

内容

5

nickname

varchar

32

昵称

6

avatar

varchar

255

头像

7

email

varchar

125

留言者邮箱

8

phone

varchar

11

留言者手机号码

9

create_time

timestamp

创建时间

10

update_time

timestamp

更新时间

11

reply

longtext

4294967295

回复

12

reply_state

tinyint

回复状态

表 4-16-notice(公告)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

notice_id

mediumint

公告ID

2

title

varchar

125

标题

3

content

longtext

4294967295

正文

4

create_time

timestamp

创建时间

5

update_time

timestamp

更新时间

表 4-17-order(订单)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

order_id

int

订单ID

2

order_number

varchar

64

订单号

3

goods_id

mediumint

商品ID

4

title

varchar

255

商品标题

5

img

varchar

255

商品图片

6

price

double

价格

7

price_ago

double

原价

8

num

int

数量

9

price_count

double

总价

10

norms

varchar

255

规格

11

type

varchar

64

商品分类

12

contact_name

varchar

32

联系人姓名

13

contact_email

varchar

125

联系人邮箱

14

contact_phone

varchar

11

联系人手机

15

contact_address

varchar

255

收件地址

16

postal_code

varchar

9

邮政编码

17

user_id

int

买家ID

18

merchant_id

mediumint

商家ID

19

create_time

timestamp

创建时间

20

update_time

timestamp

更新时间

21

description

varchar

255

描述

22

state

varchar

16

订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成

23

remark

text

65535

订单备注

24

delivery_state

varchar

16

发货状态:未配送,已配送

25

vip_discount

double

折扣

表 4-18-praise(点赞)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

praise_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

status

tinyint

点赞状态:1为点赞,0已取消

表 4-19-registered_user(注册用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

registered_user_id

int

注册用户ID

2

real_name

varchar

64

真实姓名

3

contact_qq

varchar

64

联系qq

4

contact_phone

varchar

16

联系电话

5

id_number

varchar

255

身份证号

6

examine_state

varchar

16

审核状态

7

user_id

int

用户ID

8

create_time

datetime

创建时间

9

update_time

timestamp

更新时间

表 4-20-slides(轮播图)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

slides_id

int

轮播图ID

2

title

varchar

64

标题

3

content

varchar

255

内容

4

url

varchar

255

链接

5

img

varchar

255

轮播图

6

hits

int

点击量

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

表 4-21-upload(文件上传)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

upload_id

int

上传ID

2

name

varchar

64

文件名

3

path

varchar

255

访问路径

4

file

varchar

255

文件路径

5

display

varchar

255

显示顺序

6

father_id

int

父级ID

7

dir

varchar

255

文件夹

8

type

varchar

32

文件类型

表 4-22-user(用户账户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

user_id

int

用户ID

2

state

smallint

账户状态:(1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

所在用户组

4

login_time

timestamp

上次登录时间

5

phone

varchar

11

手机号码

6

phone_state

smallint

手机认证:(0未认证|1审核中|2已认证)

7

username

varchar

16

用户名

8

nickname

varchar

16

昵称

9

password

varchar

64

密码

10

email

varchar

64

邮箱

11

email_state

smallint

邮箱认证:(0未认证|1审核中|2已认证)

12

avatar

varchar

255

头像地址

13

open_id

varchar

255

针对获取用户信息字段

14

create_time

timestamp

创建时间

15

vip_level

varchar

255

会员等级

16

vip_discount

double

会员折扣

表 4-23-user_group(用户组)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

group_id

mediumint

用户组ID

2

display

smallint

显示顺序

3

name

varchar

16

名称

4

description

varchar

255

描述

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

register

smallint

注册位置

9

create_time

timestamp

创建时间

10

update_time

timestamp

更新时间

表 4-24-vip_level(论坛分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

vip_level_id

smallint

等级ID

2

name

varchar

255

等级名称

3

discount

double

折扣

4

create_time

timestamp

创建时间

5

update_time

timestamp

更新时间

5 系统详细设计与实现

5.1用户功能模块

5.1.1首页界面

首页:用户进入网上购物商城系统的时候,首先映入眼帘的是系统的首页、商城公告商城资讯、商品信息、商城管理等信息。界面展示如下图所示。

5-1 首页界面图

5.1.2注册界面

游客可以查看系统信息,也有注册成为用户的权限。其用注册流程图如图5-2所示,注册界面展示如下图5-3所示。

5-2注册流程图

5-3 用户注册界面图

注册关键代码如下:

    public function register()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

            $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->register($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function register($request=[],$table_name = ''){

        $username = $request['username'];

        $bol = $this->where(['username'=>$username])->find();

        if (!$bol){

            $result = self::allowField(true)->save($request);

            if ($result) {

                return ['result' => 1];

            } else {

                return ['error' => ['code' => 3000, 'message' => '注册失败']];

            }

        }else{

            return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];

        }

    }  

5.1.3登录界面

当用户注册成功以后就成为了正式用户正式用户可以通过前台的登录页面登录到系统当中,用户登录流程如图5-4所示,登录界面如下图5-5所示。

5-4 登录流程图

5-5用户登录界面图

登录的逻辑代码如下所示。

public function login()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->login($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function login($request=[],$table_name = ''){

        $username = $request['username'];

        $password = $request['password'];

        $bol = $this->where(['username'=>$username])->find();

        if ($bol){

            $password = md5($password);

            if ($request['password']==$bol['password']) {

                //添加token信息

                $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);

                if ($bol_token){

                    $data['obj'] = $bol;

                    $data['obj']['token'] = $access_token['token'];

                    return ['result' => $data];

                }else{

                    return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];

                }

            } else {

                return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];

            }

        }else{

            return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];

        }

}

5.1.4 网站留言

用户可以在网站留言区发布自己的意见和建议,也可以针对特定的商品或服务提出疑问。这不仅有助于提升用户体验,还能让商家更好地了解客户需求,改进服务质量。界面如下图所示。

5-6 发布留言界面图

5.1.5 商城中心

商城中心模块展示了各种商品的详细信息和图片。用户可以浏览不同类别的商品,查看价格、描述和库存情况,选择喜欢的商品可查看详情信息,用户可以选择购买数量并将其加入购物车或立即购买。此外,用户还可以收藏该商品以便后续查看。界面图如下。

5-7  商品列表界面图

5.1.6商城管理

商城管理:商城管理界面主要包括“我的购物车”、“我的订单”和“我的地址”三个模块。“我的购物车”允许用户查看已选商品,并进行订单支付。用户可以在此页面确认商品数量、价格以及总额,完成支付后生成订单。“我的订单”提供了用户已完成的订单详情,包括订单状态、支付情况和配送信息等,用户可以随时查看和跟踪订单进度。“我的地址”功能则允许用户管理收货地址,方便在结账时选择合适的地址进行配送。

例如,我的地址界面图如下。

5-8 我的地址界面图

例如,我的订单界面图如下。

5-9 我的订单界面图

5.2管理员功能模块

5.2.1后台首页

后台首页提供了系统的概览信息,包括销售数量、销售额统计等关键指标,帮助管理员快速了解商城运营状况。界面如下图所示。

5-10 后台首页界面图

5.2.2系统用户

管理员可以查看并管理系统中的所有用户,包括其他管理员和注册用户。此功能允许管理员进行用户角色分配、权限设置以及对用户账户的基本操作(如启用/禁用账户)界面如下图所示。

图5-11 系统用户界面图

5.2.3系统管理

系统管理页面中的轮播图管理功能,允许管理员轻松上传、编辑和删除首页展示的轮播图片。通过这一功能,管理员可以定期更新重要信息和活动预告,确保用户及时获取最新动态。界面如下图所示。

5-12 系统管理界面图

5.2.4留言管理

管理员能够查看用户的留言,并直接在系统内对留言进行回复。这有助于及时解决用户的问题和疑问,提高用户满意度。界面如下图所示。

5-13 回复留言界面图

5.2.5商城管理

商城管理模块包括:在商城中心监控整体运营,通过分类列表管理商品分类优化展示,利用订单列表跟踪订单详情和状态以提升服务效率,通过订单配送管理物流信息确保配送透明度,以及设定会员等级制度提供差异化优惠增强用户粘性。此模块旨在提高运营效率和优化用户体验。界面如下图所示。

5-14 发布商品界面图

5-15添加会员等级界面图

6系统的测试

6.1测试的目的

一个系统测试的目的就是检验系统在真正的工作环境、条件下是不是能够正常运行,各种功能能不能符合设计的要求,通过测试发现系统当中存在的一些潜在的错误,然后对系统进行改进,使得系统最终以完美的形式展现给用户,提高用户使用过程中的体验度,真正达到项目的实际使用目的。

6.2 系统测试用例

系统测试包括:管理员登录功能测试、商品信息查看功能测试、商城资讯查询功能测试、密码修改功能测试,如表6-1、6-2、6-3、6-4所示:

管理员登录功能测试:

6-1 管理员登录功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

登录模块测试

登录成功的情况

管理员可以通过浏览器进入到网上购物商城系统后台登录界面,输入用户名:admin和密码admin后,点击“登录”按钮。

成功登录到管理员管理的界面

正确

登录模块测试

登录失败的情况

管理员可以通过浏览器进入到网上购物商城系统后台登录界面,输入用户名:admin和密码111后,点击“登录”按钮。

系统提示“用户名和密码不匹配”

正确

商品信息查看功能测试:

6-2 商品信息查看功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询公告信息功能测试

查询成功的情况

用户在导航栏中点击“商品信息”,输入关键词查询,显示查询的商品信息

查询成功

正确

查询商城资讯测试:

6.3 查询商城资讯功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询商城资讯功能测试

查询成功的情况

在商城资讯界面输入商城资讯关键词进行查询

查询成功

正确

密码修改功能测试

6-4 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

6.3 系统测试结果

本次开发的系统是一个网上购物商城系统测试可以看出系统的基本可以实现,而且在测试的过程中也对界面的展示进行了查看,发现界面并没有出现扭曲、混乱等情况,能够满足用户的需求,系统运行良好,是可以进行投入使用的。

7 结论

基于PHP的网上购物商城系统的设计与实现,通过采用ThinkPHP框架和MySQL数据库,并结合协同过滤算法实现了个性化推荐功能,为用户提供了一个便捷、高效的在线购物环境。该系统不仅克服了传统零售模式的时间和空间限制,还提高了用户的购物体验和满意度。对于商家而言,系统提供的全面管理工具有效简化了商品管理、订单处理及客户服务等流程,有助于降低运营成本并提高工作效率。整个项目在技术、经济、操作和社会可行性方面均表现出色,验证了其在电子商务领域的应用潜力。

未来,随着互联网技术和电子商务行业的不断发展,基于PHP的网上购物商城系统有着广阔的发展前景。一方面,可以通过引入更多前沿技术如大数据分析等进一步优化用户体验,例如更精准的个性化推荐和智能客服。另一方面,系统的可扩展性使得它能够轻松适应不同规模企业的需求,支持跨境电商等新兴业务模式的发展。此外,考虑到环保和可持续发展的重要性,未来的系统还可以探索如何减少电子废物和支持绿色消费,为社会做出更大的贡献。总之,持续的技术创新和用户需求导向将是推动这一系统不断发展的关键因素。

参考文献

  1. 广州手拉手互联网股份有限公司.一种网上购物与营销系统: 202410481977.3[P].2024-09-13.
  2. 长春理工大学.一种基于网上购物的用户偏好预测方法、系统及电子设备: 202311576100.4[P].2024-02-06.
  3. 焦作师范高等专科学校.一种用于网上购物系统的商品销售管理系统: 202211147375.1[P].2023-01-20.
  4. 宫业琴.基于分布式架构的网上商城的开发与设计[J].信息与电脑(理论版),2022,34(07):158-160.
  5. 曾怡苗.基于数据库的网上超市购物系统的设计与实现[J].自动化应用,2022,(01):67-70.DOI:10.19769/j.zdhy.2022.01.018.
  6. 朱育颉,刘虎沉.网上购物平台多推荐融合算法研究[J].计算机科学,2021,48(S2):232-235.
  7. 常佳宁,潘琳.一种基于B/S的网上购物系统设计[J].中国科技信息,2021,(15):71-72.
  8. 艾方亮.购物网站用户行为分析系统的优化设计与实现[D].东南大学,2021.DOI:10.27014/d.cnki.gdnau.2021.001170.
  9. 曹艳琴.基于HTML5的Web App的购物网站设计分析[J].数字技术与应用,2021,39(04):170-172.DOI:10.19695/j.cnki.cn12-1369.2021.04.56.
  10. 刘锦康,赵征.基于改进WebML建模的B2C购物网站网页界面视觉展示系统设计[J].现代电子技术,2021,44(08):40-44.DOI:10.16652/j.issn.1004-373x.2021.08.009.
  11. 杨勇.一种网上购物方法及其系统: 202011299545.9[P].2021-01-26.
  12. 胡小春,胡凯,陈燕.基于Java的网上购物系统研发[J].信息技术与信息化,2021,(01):18-21.
  13. Wang Y ,Zhu Y ,Zhang Z , et al.Design of Hybrid Recommendation Algorithm in Online Shopping System[J].Journal of New Media,2021,3(4):119-128.
  14. 苏畅,周垚,袁晓芳.基于GOMS模型的网上购物流程设计优化研究[J].包装工程,2021,42(06):113-119.DOI:10.19554/j.cnki.1001-3563.2021.06.016.
  15. 裴来芝,宁云智,刘东海.基于ASP.NET的网上商城中用户注册功能模块设计与实现[J].电脑编程技巧与维护,2020,(10):44-46.DOI:10.16184/j.cnki.comprg.2020.10.018.
  16. 王春明.基于Java的网上购物系统的设计与实现[J].电子技术与软件工程,2020,(20):48-50.DOI:10.20109/j.cnki.etse.2020.20.023.
  17. 王柯梦,王瑞平.基于B2C网上商城前台系统数据库设计与实现[J].广西质量监督导报,2020,(09):70-71.
  18. BorderFree Inc.; Patent Issued for System And Method For Online Shopping (USPTO 10,621,652)[J].Computer Weekly News,2020,
  19. 伍倩莹.电商个性化推荐系统在图书购物网站的应用研究[J].现代营销(信息版),2020,(03):207-208.
  20. Farhan U ,Bofeng Z ,Ullah R K .Image-Based Service Recommendation System: A JPEG-Coefficient RFs Approach[J].IEEE Access,2020,83308-3318.

致谢

眨眼之间,大学生活就要结束了。在本文的最后,我要感谢我和蔼可亲的导师、团结有爱的同学的帮助和鼓励。此刻,我找不到感谢之词可以用来表达我最深切的感激之情。尤其感谢我的指导老师,在选题的过程中与我进行了深入的交流,在毕业设计期间给我提供了一些指导。四年的学习生活让我受益良多,老师们的丰富的学术知识、认真负责的学习态度让我受益匪浅。在此,我深深地感谢那些曾经给予我帮助和指导的老师!

我们的论文得益于许多学者的贡献,他们的研究成果为我们提供了宝贵的指导,使我们能够更好地完成这篇文章。感谢我的同学和朋友在我的写作以及排版过程中给予热情的帮助,才使得我比较顺利的完成了这篇论文。

感谢大学里遇见的朋友,你们在我这四年里留下无数的温暖和快乐,让我对这个校园多了一份留念。最后,感谢我的父母、辅导员、班长,以及室友们对我大学生活上的关心和理解,让我能保持乐观和追求我所热爱的。尽管我的能力有限,但我仍然尽力去完善这篇论文,并且诚挚地希望各位老师和学友能够给予宝贵的指导与意见!

  请关注点赞+私信博主,免费领取项目源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值