一、后台管理系统
人人商城后台管理系统是基于PHP语言开发的,主要包含商品管理、订单管理、用户管理、系统设置四个模块。
在商品管理模块中,可以添加、编辑、删除商品信息,包括商品名称、价格、库存、图片等。同时可以对商品进行分类管理,方便用户查找。
订单管理模块可以查看用户下的订单,处理退货、发货等操作;用户管理模块可以管理用户信息,包括用户名称、电话、收货地址等;系统设置模块可以对网站基本设置、支付方式、短信接口、管理员权限等进行配置。
<?php
// 商品管理
public function goods(){
$goodsList = $this->model->select('goods')->orderBy('id DESC')->get();
$this->assign('goodsList',$goodsList);
$this->display('goods_list.tpl');
}
// 订单管理
public function order(){
$orderList = $this->model->select('orders')->orderBy('id DESC')->get();
$this->assign('orderList',$orderList);
$this->display('order_list.tpl');
}
// 用户管理
public function user(){
$userList = $this->model->select('users')->orderBy('id DESC')->get();
$this->assign('userList',$userList);
$this->display('user_list.tpl');
}
// 系统设置
public function config(){
$configList = $this->model->select('config')->get();
$this->assign('configList',$configList);
$this->display('config.tpl');
}
?>
二、前台展示页面
人人商城的前台展示页面主要包括主页、分类页、详情页、购物车页、结算页、支付页等。
主页展示各种热门商品,分类页按照分类展示商品,详情页展示商品详细信息,包括商品名称、价格、库存、配送方式、购买说明等,同时可以加入购物车,购物车中可以修改商品数量,进入结算页进行支付操作。
为了保护用户信息安全,人人商城采用了HTTPS协议,避免了信息被恶意截获。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><{$goods.name}></title>
<link rel="stylesheet" href="css/style.css">
<script type="text/javascript" src="js/jquery.min.js"></script>
</head>
<body>
<div class="header">
<div class="logo">
<a href="/"><img src="images/logo.png"></a>
</div>
<ul class="nav">
<li><a href="/">首页</a></li>
<li><a href="/list.html">分类</a></li>
<li><a href="/cart.html">购物车</a></li>
<li><a href="/order.html">我的订单</a></li>
<li><a href="/user.html">个人中心</a></li>
</ul>
</div>
<div class="main-wrapper">
<div class="main">
<div class="goodDetail">
<img src="<{$goods.img}>">
<div class="right">
<div class="title">
<{$goods.name}>
</div>
<div class="price">
<span>¥<{$goods.price}></span>
</div>
<div class="num">
<span>商品编号:<{$goods.id}></span>
<span>库存:<{$goods.stock}></span>
</div>
<div class="attrList">
<ul>
<li>颜色: 红色</li>
<li>尺码: S</li>
</ul>
</div>
<div class="btns">
<div class="btn addCartBtn">加入购物车</div>
<div class="btn buyBtn">立即购买</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
三、安全策略
人人商城采用了多种安全策略来保护用户数据,包括防注入、XSS攻击、CSRF攻击等。
其中,防注入方面,人人商城引入了预处理机制,对输入数据进行过滤和检查,避免恶意用户利用SQL注入等方式攻击数据库;XSS方面,使用HTML实体化技术对用户输入的数据进行转义,避免浏览器解析js代码;CSRF方面,使用Token令牌验证机制,防止攻击者伪造用户请求。
<?php // 防注入 public function checkInput($data){ $data = trim($data); $data = htmlspecialchars($data); $data = addslashes($data); return $data; } // XSS public function filterHtml($html) { $allowTags='
'; $html = strip_tags($html, $allowTags); $html = htmlspecialchars($html, ENT_QUOTES, 'utf-8'); $html = str_replace(array('<','>','"',''','
','
'),'',$html); return $html; } // CSRF public function checkToken() { if(empty($_SESSION['csrf_token']) || $_SESSION['csrf_token'] != $_POST['csrf_token']) { die('请求非法,请重新提交'); } } ?>
四、性能优化
为了提升用户的使用体验,人人商城做了很多性能优化工作,主要包括如下几个方面:
1. CDN加速:使用CDN技术加快图片、JS、CSS等静态资源的访问速度;
2. 缓存技术:使用Memcached和Redis等缓存技术,减少数据库访问次数;
3. 懒加载技术:图片、视频等大文件采用懒加载技术,当用户需要时再加载,减少页面加载时间;
4. 代码压缩:使用Webpack等工具对JS、CSS等代码进行压缩,减小文件体积。
const path = require('path');
const webpack = require('webpack');
const htmlWebpackPlugin = require('html-webpack-plugin');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
module.exports = {
entry: {
app: './src/js/index.js'
},
output: {
filename: 'js/[name].js',
path: path.resolve(__dirname, 'dist')
},
devtool: 'source-map',
module: {
rules: [{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
}]
},
plugins: [
new ExtractTextPlugin('css/[name].css'),
new htmlWebpackPlugin({
filename: 'index.html',
template: './src/view/index.html',
inject: true,
title: '人人商城',
minify: {
removeComments: true,
collapseWhitespace: true
}
}),
new UglifyJSPlugin(),
new CleanWebpackPlugin(['dist'])
]
}