1. 介绍

1.1 介绍

福哥今天要带着大家开发TFUMS系统的注册功能的处理程序了。这个处理程序会调用模型user的add方法进行创建用户的操作,模型user的add方法会先检查用户名是否被占用了,如果没有被占用才能进一步完成创建用户的操作,否则会报错。

如果处理程序报错的话,会返回错误码和错误信息。这个错误码需要我们定义好,一般情况下错误码一个是7位或者8位的整型数字,这个数字分为两段,前面一段作为模块的计数区域,后面一段是模块可能的错误信息对应的错误码。

2. 错误码信息

错误码信息福哥给放到了Config.inc.php这个配置文件里面了。因为错误码本身不需要写成程序,只要约定俗成就可以了。所以,福哥使用一个块注释将错误码信息框了起来。

/* * Error code and message * * 1001000 ( member ) * 1001001 - 错误请求 * 1001002 - 用户名已经存在 * 1001003 - 创建用户失败 * */

3. 注册表单处理程序

注册表单处理程序就是api/member/register.inc.php这个接口控制器,它主要负责检查输入数据,完成创建用户的操作。

3.1 代码

protected function process(){    $user = new user($this->tfphp);    $post = $this->tfphp->getRequest()->post;    $userName = $post->get("user");    $userPass = $post->get("pass");    $confirmUserPass = $post->get("confirmPass");    if($userName == "" || $userPass != $confirmUserPass){        return $this->tfphp->getResponse()->responseJSON_CM(200, 1001001, "错误请求");    }    $ret = $user->add($userName, $userPass);    switch ($ret){        case 1:            return $this->tfphp->getResponse()->responseJSON_CM(200, 1001002, "用户名已经存在");            break;        case 2:            return $this->tfphp->getResponse()->responseJSON_CM(200, 1001003, "创建用户失败");            break;    }    $newId = $user->getLastUserID();    return $this->tfphp->getResponse()->responseJSON_CM(200, 0, "OK", array(        'userid'=>$newId,    ));}

4. 注册表单JS程序

福哥还对JS程序进行了一些调整,主要是对接处理程序的逻辑,使JS程序可以正确响应处理程序返回的结果。

4.1 代码

$('form').form({    url: "api/member/register",    method: "post",    validations: [        {type:"empty", name:"user", msg:"请填写用户名"},        {type:"min", value:2, name:"user", msg:"用户名最少2个字"},        {type:"max", value:20, name:"user", msg:"用户名最多20个字"},        {type:"re", value:/^[^\`\~\!\@\#\$\%\^\&\*\(\)\[\]\{\}\-\_\+\|\\\:\;\"\'\\,\.\?\/]/, name:"user", msg:"用户名不能以符号开头"},        {type:"empty", name:"pass", msg:"请填写密码"},        {type:"min", value:6, name:"pass", msg:"密码最少6个字"},        {type:"empty", name:"confirmPass", msg:"请填写确认密码"}    ],    onValidationManual: function(form){        if($(form).find('[name="pass"]').val() != $(form).find('[name="confirmPass"]').val()){            this.postValidationError(form, "pass", "两次输入的密码不一样");            return false;        }    },    onSuccess: function (d) {        if(d.errcode == 0){            document.location = 'server->BASE_URI %>';        }        else{            $('form').tips({                text:d.errmsg            });        }    },    onError: function (d) {        $('form').tips({            text:"服务器响应错误"        });    },    onValidationError: function (form, name, msg) {        $('form').tips({            text:msg        });        $('form').find('[name="'+ name +'"]').focus();    }});

5. 讲解

5.1 注册表单处理程序

首先通过post拿到表单提交的数据,包括用户名、密码、确认密码。

接着检查表单提交的数据的合法性,如果不合法就报一个“错误请求”即可,因为正常情况下JS程序就会检查这些数据了,所以到处理程序这里还会有不合法情况基本都是黑客所为。

尝试使用模型user的add方法创建指定的用户,因为add方法的结果的多态的,所以使用switch判断结果码并提示错误信息。

如果add方法返回0则表示创建用户成功了,直接返回0即可。

5.2 注册表单JS程序

在onSuccess方法里判断,如果结果码为0就表示成功了,跳转页面到首页去。否则就是处理错误了,根据结果码和结果信息显示错误提示信息给用户。

6. 总结

今天福哥带着大家完成了注册功能的最后一步,我们通过模型user的add方法实现了用户注册的功能。这是一个范本功能,也就是说后面做其他表单功能的时候就会简单多了,所谓举一反三就是这个道理了。

不过,注册页面福哥还欠大家一个验证码功能没有实现,这个需要用到PHP的GD库了。

下一课,福哥将带着童鞋们制作表单的图片验证码功能。


【20201203】做个用户管理系统(17)——注册功能的实现(二)

【20201202】做个用户管理系统(16)——注册功能的实现(一)


免费看文章,自己学技术


每一篇文章都是福哥一个字一个字地敲出来的,都是福哥原创的。

每一篇文章都是经过了福哥的反复验证的,都是可以正常使用的。


用户管理系统_【20201204】做个用户管理系统(18)——注册功能的实现(三)...相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. 医院药房管理系统_药一点医院HIS管理系统

    药一点医疗管理系统系统介绍 河南药典信息科技有限公司 医院药房管理系统_药一点医院HIS管理系统 产品介绍 1.1.本系统是一款专为医院.门诊部等医疗机构开发的专业医疗管理软件. 1.2.软件提供了全 ...

  3. java做同学录管理系统_基于jsp的同学录管理系统-JavaEE实现同学录管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的同学录管理系统, 该项目可用各类java课程设计大作业中, 同学录管理系统的系统架构分为前后台两部分, 最终实现在 ...

  4. java固定资产管理系统_基于jsp的固定资产管理系统-JavaEE实现固定资产管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的固定资产管理系统, 该项目可用各类java课程设计大作业中, 固定资产管理系统的系统架构分为前后台两部分, 最终实 ...

  5. mysql网吧管理系统_基于jsp的网吧管理系统-JavaEE实现网吧管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的网吧管理系统, 该项目可用各类java课程设计大作业中, 网吧管理系统的系统架构分为前后台两部分, 最终实现在线上 ...

  6. java会议管理系统_基于jsp的会议管理系统-JavaEE实现会议管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的会议管理系统, 该项目可用各类java课程设计大作业中, 会议管理系统的系统架构分为前后台两部分, 最终实现在线上 ...

  7. 如何选择集团ERP管理系统_哪家的集团ERP管理系统好

    针对不同行业集团公司在有关项目.预算.制造.财务.供应商.仓储等环节的集成化管理效率方面,因信息化程度有所差别.部分集团公司因所涉及的业务种类多,再加上企业的信息化问题以及其他多方面原因导致生产成本居 ...

  8. java 档案管理系统_基于jsp的档案管理系统-JavaEE实现档案管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的档案管理系统, 该项目可用各类java课程设计大作业中, 档案管理系统的系统架构分为前后台两部分, 最终实现在线上 ...

  9. 用户登陆_华为路由器AAA用户密码登陆你了解吗?

    AAA Authentication(认证).Authorization(授权).Accounting() 它提供了认证.授权.计费三种安全功能,可以验证用户帐户是否合法,授权用户可以访问的服务,并记 ...

  10. linuxoracle查看用户权限_实现Oracle授予用户权限的一个实例

    本文将从用户创建讲起,特别讲述Oracle授予用户权限的一个实例,希望对大家了解Oracle授予用户权限有所帮助. 这两天在测数据库同步软件的时候,需要在Oracle里创建一个用户名和密码均为SYSD ...

最新文章

  1. msm8974 camera driver添加新摄像头kernel hal修改
  2. Java机器学习库ML之十模型选择准则AIC和BIC
  3. ASM_POWER_LIMIT 参数
  4. python爬虫-urllib模块
  5. [傅里叶变换及其应用学习笔记] 九. 继续卷积的讨论
  6. 基于深度学习的异构时序事件患者数据表示学习框架
  7. 【开源社区】如何参与JEECG开源团队?
  8. Jmock-使用ClassImposteriser扩展mock class对象
  9. 华为云GaussDB新产品特性亮相DTC2021,新品开源预告
  10. UI(2)---移动端APP应该如何定义页面规范
  11. 吴恩达《机器学习》第十章:应用机器学习的建议
  12. Qt 去除控件边框线
  13. elasticsearch+kibana 日志系统配置java日志解析和过滤无用字段
  14. 成人高考专升本- 你需要知道的事情!!
  15. AlphaZero问世:8小时完爆围棋、国际象棋、日本将棋(转)
  16. DER: Dynamically Expandable Representation for Class Incremental Learning翻译
  17. 内存管理基本原理及非ARC环境使用小心得
  18. 十大开源Web应用安全测试工具
  19. 更新提示!Chrome新的零日漏洞正被利用
  20. JPG、GIF、PNG和BMP格式的图片各有什么优点和缺点

热门文章

  1. Facebook视频支持AV1
  2. ffmpeg内存模型及AVPacket和AVFrame API基本使用
  3. 低代码是什么?有什么优势
  4. 大牛书单 | 人工智能方向好书分享(第二期)
  5. c/c++比较灵活的方法:回调函数和函数指针
  6. Scala的隐式参数、隐式值、隐式对象
  7. 如何提升springboot服务吞吐量
  8. java基础----IO打印流PrintStream
  9. 【Python】部分基础+Flask/JSON/....+零碎笔记
  10. 看动画学算法系列之:后缀树suffix tree