1. 引言
电子商务的发展日新月异,出现了许多新的模式和现象 [1] ,越来越多的传统行业开始与互联网融合。2020年新冠疫情的到来,让很多人的消费习惯发生改变。“互联网+”无疑成为水果生鲜行业发展和创新的必经之路。线上买菜即能满足用户“不出门购物”的需求,也给商家带来了无限生机。在这种背景下,需要一款果蔬信息管理系统 [2] 。
Web技术是互联网界面中广泛应用的一种技术,而PHP语言成为目前流行的网站开发语言之一。PHP凭着速度快、开发成本低、周期短、后期维护费用低、开源产品丰富等优势迅速在市场上占领先机 [3] 。
本文设计并实现了一款基于PHP的果蔬电商平台,创建了用户与管理员两种角色,将这些果蔬进行信息化处理,让更多有需求的用户能够及时了解果蔬的信息并购买需要的果蔬 [4] ,服务顾客满足网络购物需求的同时,也为商家提供一个便于管理和使用的商城系统。
2. 系统设计
2.1. 系统基本功能
本系统分为用户和管理员两个部分。用户使用前台界面,管理员则在后台中实现管理功能。
如图1所示,用户主要功能为:登陆与注册功能、使用关键字搜索商品功能、浏览不同分类下商品功能、浏览商品主要信息功能、将商品添加至购物车功能、对购物车内商品管理功能、管理个人详细信息功能。
管理员主要功能为:管理员登陆功能、添加或删除普通用户功能、添加或删除商品类别功能、上传或删除商品功能。
2.2. 数据库设计
本系统根据需求分析及功能划分模块图,在数据库中设计了如下五张表:
1) user表:用于存放用户表的信息,包括ID主键、用户名username、用户密码和是否为管理员,如表1所示。
2) touch表:用于用户详细信息,包括用户ID、用户姓名、手机号码、电子邮件和收货地址,如表2所示。

Table 2. User details table (touch)
表2. 用户详细信息表(touch)
3) class表:用于存放商品类别信息,包括商品ID主键和商品类别,如表3所示。

Table 3. Commodity categories table (class)
表3. 商品类别表(class)
4) shop表:用于存放商品信息,包括商品隶属于的类别、商品名称和商品描述,如表4所示。
5) cart表:用于存放购物车信息,包括用户隶属于ID、商品类别隶属于ID和商品数量,如表5所示。

Table 5. Shopping cart table (cart)
表5. 购物车表(cart)
2.3. 系统流程图
如图2所示,管理员在后台连接MySQL数据库,并对数据库中的用户表执行增删查改等操作。用户端在前台注册会在用户表中添加一条记录,登陆时执行查找函数,若用户名和密码与数据库中的一致则可完成用户登陆操作。
3. 系统实现
3.1. 登陆界面
本章节设计的界面有:Post提交表单数据的结果不会出现在浏览器地址栏里,通过设置表单编码POST的方式可以用来提交文件 [5] 。在HTML的
用户登陆与管理员登陆界面大同小异,不同的是管理员在数据库中的“is admin”字段为1,普通用户为0。在管理员登陆时会进行额外的判定,若“is admin”字段为0,则无法登陆后台。
登陆界面如图3所示。
3.2. 前台页面
如图4所示,网站前台首页由顶部栏、轮播图、商品分类展示组成。
顶部栏包含搜索框和用户按钮。用户可在搜索框按商品名模糊查询商品。用户可在首页进行登陆或注册,若已经登陆,用户按钮将变为“个人中心”和“购物车”。
商品分类别展示,仅显示每一类的五个商品。
点击“查看更多”,系统将自动筛选出所有属于该分类的商品,并显示在网页上,如图5所示。商品展示采用Flex布局,在容器内按从左至右的方式排列。引入新的Flex弹性布局,可以实现通过一整套响应灵活的实用程序,快速管理栅格的列、导航、组件等的布局、对齐和大小 [6] ,并能解决float布局产生的高度塌陷问题。

Figure 5. Commodities under this category
图5. 该分类下商品
单击商品,进入商品详细界面,如图6所示。
点击“加入购物车”,可将商品填加至购物车,如图7所示。
购物车必须在已登陆情况下进入,若用户未登陆,则跳转至登陆界面。
购物车中无被选中商品,则在购物车中添加该商品。若该商品已经存在,则数量加一。
下面是点击加号增加商品数量的实现代码:
require './init.php';
$shopid=I('shopid','get','id');
$sql='update cart set sum=sum+1 where `userid`= ?and `shopid` = ?';
db_fetch(DB_ALL,$sql,'ii',[$_SESSION['userid'],$shopid]);
echo < script >window.history.go(-1);< / script >
?>
用户可在顶栏进入个人中心,可在个人中心实现修改个人信息、进入购物车、退出登陆操作,如图8所示。
3.3. 后台页面
管理员可后台对数据库进行管理。包括管理用户信息,管理商品类别,管理商品信息等,如图9所示。
3.4. 过滤器
为防止用户恶意修改URL链接,进入需要登陆权限的页面,造成信息泄漏等后果,本项目编写了一段过滤代码。
在PHP网站中 [7] ,有些信息需要在不同页面中共享,PHP提供的会话信息Session,可以实现这一目的 [8] 。在显示网页内容前,查看SESSION中存储用户信息的情况,若SESSION中没有存储用户信息即用户没有登陆,则强制跳转至登陆界面。在所有需要登陆权限的网页前添加此代码,增加了系统的安全性。
下面是过滤器的实现代码:
session_start();
if($_SESSION['userid']==null){
echo < script >location='/store/home/login.php'< / script >
exit;
}
?>
4. 系统测试
系统模块设计 [9] 开发完成,要进行系统测试,主要有系统功能测试、性能测试、压力测试、安全性测试等。
功能测试主要包括用户注册与登陆测试、商品添加与删除测试,在前端界面对用户和商品数据库进行修改,来检测这些功能是否能按要求完成,如图10、图11所示,对添加商品功能进行系统测试。
性能测试、压力测试主要进行系统内部的逻辑、流程,包括多个用户同时访问网站等情况。安全性测试包括在未登录情况下通过URL进入用户界面、使用SQL注入攻击等。通过系统测试提升系统的运行效率和稳定性。

Figure 11. Function test: adding goods successfully
图11. 功能测试:添加商品成功
5. 结语
本文设计的果蔬电商平台可以满足对小型电子商务的基本需求,经测试该平台界面简洁明了,可操作性强,并拥有一定的安全防护手段,可达到设计该平台的目的。希望接下来将该平台推广到移动端,客户端毕竟对于中老年人操作不太方便,运用移动端的设计能够满足广大用户的需求,使其达到全民的生活需求。
NOTES
*通讯作者。