PHP书城系统用户模块的设计与实现
2017-03-06吴庆祥
吴庆祥
摘要:网上购物已经成为了一种非常流行的购物方式,能通过网络方便地购买书籍也变成十分必要。本系统基于PHP开发,运用MySQL作为后台数据库,使用易交互的界面使用户能获得更好的体验,满足用户在网上购物时的基本需求。本系统由前台与后台两部分组成。前台实现用户注册登录、浏览商品信息、购买商品等功能,后台实现用户管理、订单管理、分类管理等功能,顾客可以在本网站中查找购买书籍,商家也可以简单方便的更新及管理商品。
关键词:PHP;MySQL;网上书城
中图分类号:TP315 文献标识码:A 文章编号:1009-3044(2016)30-0045-02
1 引言
当前,人们越来越倾向于在网络上购物,因此电子商务得以高速发展。网上书店对比实体书店来说有不少优点。首先,网上书店不需要实体店铺,为商家节约了不少成本。而且商家能够通过管理系统很方便地了解到库存、热销书籍等信息,可以及时地调整营销策略。其次,顾客通过网上书店可以快速地搜索到自己想购买的书籍,省去了很多时间。对于消费者和商家来说网上书店是互利双赢的,具有广阔的发展前景。
2 系统具体设计
2.1 系统流程
PHP书城系统主要包括购买流程和管理流程。其中购买流程包括顾客进入网站浏览商品,加入购物车时判断用户是否登录,当用户尚未登录时提醒用户登录,顾客选购好商品后可下达订单。
2.2 功能模块
PHP书城系统共分为两个模块:其中前台模块包括:用户模块,商品展示模块,购物车模块,订单模块,后台模块包括权限管理、用户管理、分类管理、商品管理等模块。
2.2.1 前台管理模块
前台管理模块包括用户模块、商品展示模块、订单模块等。其中用户模块主要是当游客进入网站后,输入用户名、密码等信息可注册成为本网站用户。注册后的用户登录后可以使用本应用的某些特定功能,如加入购物车、下订单等操作。用户可在用户中心查看订单及修改个人信息等。商品展示模块的功能为展示商品信息、商品详情及价格。可以根据类别及商品名查询特定商品。而订单模块是当用户浏览商品后可选择指定商品加入购物车,生成订单并购买。也可以对购物车商品进行增删改操作。
2.3 数据库设计
根据模块划分和功能设计的要求,本系统数据库共有6个数据表,分别为管理员表shop_admin、购物车表shop_cart、商品表shop_goods、订单表shop_orders,分类表shop_sort,用户表shop_user等。其中shop_user表为用户表,主要用于用来保存用户的重要信息。
3 系统的具体实现
用户进入本网站后,首先展示的是主页面。用户可进行浏览商品及注册登录等操作,只有当用户登录后才可以进行将商品加入购物车及下订单等操作。对于后台界面,首先展示的是登录界面,只有以管理员身份登录成功后才可以进入后台管理界面。登录成功后管理员可以对商品、订单等进行操作。
3.1 前台功能
3.1.1 用户模块
用户第一次进入本网站时可以通过首页中的注册链接跳转到注册模块进行注册。
注册页面采用ajax无刷新提交的方式增强用户体验。当用户名重复,两次密码输入不一致,电子邮箱格式不正确时会提示错误,用户可以在不刷新页面的情况下修改错误的信息。注册模块首先检查用户名是否存在,用户名存在时会提示用户重新输入用户名,当用户名不存在时则进一步进行各种合理性与合法性检查。若用户输入的所有数据均合法,则将数据插入数据库,其中密码采用md5加密的模式。当注册成功后跳转到用户信息页面,用户可填写自己的详细资料。实现注册功能的部分代码如下:
RegisterAction.class.php
//验证添加注册用户
functionregister_sub(){
unset($_POST['pwd_confirm']);
unset($_POST['favorite']);
if(md5($_POST['code']) != $_SESSION['verify']){
$this->error(C('ERROR_VERIFY_ERROR'));
}else{
$_POST['password'] = md5($_POST['password']);
$_POST['add_time'] = time();
$checkUsernameCondition['username']=array('eq', $_POST['username']); $status = $this->registerModel->getUserCheckStatus($checkUsernameCondition);
if(empty($status)) {
$saveData['username'] = trim($_POST['username']);
$saveData['password'] = md5($_POST['password']);
$saveData['email'] = trim($_POST['email']);
$saveData['add_time'] = time();
$userResult = $this->registerModel->getRigisterUser($saveData);
//注冊成功
$this->redirect('passport_create',array('user_id'=>$userResult['userId']));
}else{
$this->error(C('ERROR_REGISTER_FAILURE'));
}
}else{
$this->error(C('ERROR_ACCOUNT_HAVE_USE'));
}
}
}
如果用戶已经注册过,则可以点击登录链接跳转到登录界面。
用户输入用户名密码后提交数据,后台获取数据后判断是否存在该用户并判断用户密码是否正确。当用户名和密码均正确时,把用户信息放在cookie中。用户点击退出时清除cookie中的信息。实现登录功能的部分代码如下:
LoginAction.class.php
//登陆处理
functionlogin_sub(){
$condition['username'] = array('eq', $_POST['username']);
(下转第53页)
(上接第46页)
$condition['password'] = array('eq', md5($_POST['password']));
$condition['_logic'] = 'and';
$info = $this->loginModel->loginCheck($condition);
if(is_array($info) && !empty($info)){
Cookie::set('user_name', $_POST['username'], 60*60*24);
Cookie::set('user_id', $info['id'], 60*60*24);
if(Cookie::get('user_name')){
$this->assign('jumpUrl', U('Myapp://index/index'));
$this->assign('waitSecond', 3);
$this->success(C('SUCCESS_LOGIN_SUCCESS'));
}else{
$this->error(C('ERROR_LOGIN_FAILURE'));
}
}else{
$this->error(C('ERROR_ACCOUNT_OR_PASSWORD_ERROR'));
}
}
当用户登录成功后即可进入用户中心进行查看订单及修改个人信息等操作。
4 结束语
本用户登录模块的最大特点是其结构清晰,界面友好,易于管理和更新。但个别功能的实现还不够完善,有待在使用体验中去完善。
参考文献
[1] 潘凯华,刘中华.PHP从入门到精通[M].北京:清华大学出版社,2010:23-37.
[2] 白志强,白志刚.21天学通PHP[M].北京:电子工业出版社,2010:23-25.
[3] 崔洋.MySQL数据库应用从入门到精通[M].北京:中国铁道出版社,2013:103-135.
[4] 姜承尧.MySQL技术内幕:SQL编程[M].北京:机械工业出版社,2012:46-67.
[5] 杜江.PHP5与MySQL5 Web开发技术详解[M].北京:电子工业出版社,2007:41-55.
[6] 王石,杨英娜.精通PHP+MySQL应用开发[M].北京:人民邮电出版社,2006:12-23.
[7] 贾素来.常见动态网页技术比较[J].大众科技,2008(9).
[8] 张绪旺.互联网创新加速服务贸易增长[N].北京商报,2012-05-31.
[9] Luke Welling.PHP and MySQL Web Development[M].北京:机械工业出版社,2009:88-90.