洛阳理工学院毕业设计(论文)
第4章 详细设计
4.1 用户功能设计与实现
4.1.1 用户注册功能
当用户正确、完整填写注册信息之后,检查用户名是否重复,如果重复则停止将用户信息上传至用户信息表。如果不重复,则上传相关数据,将一条新纪录添加到用户信息表中。
注册页面的设计关键是运用了大量的验证控件来控制用户注册时填写的信息。比如用户名和密码等不能为空,密码与确认密码内容要一致。
用户注册页面的流程图如图4-1所示。
开始显示会员注册表单填写表单否判断表单是否完整是提交到数据库显示出错对话框会员名已被注册否判断用户名是否有可用是输入到数据库显示注册成功界面结束 图4-1 用户注册流程图
13
洛阳理工学院毕业设计(论文)
注册时验证用户名重复代码如图4-2所示。
图4-2 验证用户名代码
如上图代码所示,通过ajax技术在用户输入用户名后触发用户名验证,验证通过代码返回1,不通过则返回0。然后通过js判断返回值,反馈到前端页面。
用户名验证无刷新反馈提醒如图4-3所示:
图4-3 验证用户名重复
用户名重复检测通过后,检测密码是否符合规则,两次密码是否一致,密码通过后,会执行注册代码,在数据库的用户表中添加一条数据。
插入数据库代码如下:
if(empty($_POST['agreement']) || !isset($_POST['agreement'])){
$this->error('你没有同意用户注册协议');exit; }
$info = $_POST['info'];
14
洛阳理工学院毕业设计(论文)
$info['username'] ? '' : $this->error('用户名不能为空');
if($info['password'] && $info['password']==$info['rep_password']){
$info['mima'] = $info['password'];
$info['password'] = passwordMember($info['password']); unset($info['rep_password']);
$info['nickname']= $info['nickname']? $info['nickname'] :
$info['username']; $info['groupid'] = \$info['regtime'] = time(); $info['lasttime'] = time(); $info['lognum'] = 1; $info['logtime'] = time(); $info['regip'] = ip(); $info['lastip'] = ip(); $info['logip'] = ip(); $info['listorder'] = '10';
$m = $this->member_db->data($info)->add();
$this->member_data_db->data(array('userid'=>$m))->add();
if($m){
session('lab_userid',$m);
session('lab_username',$info['username']); $this->success('注册成功',__ROOT__); }else{
$this->error('注册失败'); } }else{
$this->error('两次密码输入不一致'); }
15
洛阳理工学院毕业设计(论文)
4.1.2 用户评论功能
用户评论是用户对信息的反馈,用户与用户之间也要有良好的交互性,便于用户之间的交流。用户评论是基于新闻信息的,呈现在新闻的底部区域。
评论区域包括评论文本框、验证码、提交按钮。验证码为防止用户恶意发表评论、刷评论等行为。评论框下是各个用户对该条信息的评论列表以及用户与用户之间的交互。
用户评论模块设计如图4-4所示。
图4-4 评论设计
用户在输入完评论内容之后要输入验证码验证,验证码保证网站不被恶意攻击。验证码的验证同样采用ajax异步验证功能,验证不通过后即使提醒,方便重新输入。验证码验证通过后提交评论内容,程序会在数据库的评论表中插入一条数据,数据记录评论人、评论时间、被评论文章的相关信息等。
提交评论代码如下: /*发表评论*/
public function comment(){
$catid = isset($_GET['catid']) ? intval($_GET['catid']) : '0'; $aid = isset($_GET['aid']) ? intval($_GET['aid']) : '0';
16