侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

beego框架表单数据验证之注册登录功能开发示例代码

Go  /  管理员 发布于 3年前   1448

beego登录注册功能之前的文章有写过,今天主要就是用一下表单数据验证validation模块,

及改成异步处理方式来登录注册,具体细节就不记录了,我这里就简单的curd,

有兴趣的可以自行翻阅之前的文章


注册代码:

"github.com/astaxie/beego/validation"
//注册页模板
func (c *UserController) Reg() {
c.TplName = "register.html" //只有加了这句,前端才会跳转到注册页面
}

//注册用户  模型添加数据
func (c *UserController) Register() {
//1.拿到数据
name := c.GetString("name")
email := c.GetString("email")
password := c.GetString("password")

//2.对数据进行校验
valid := validation.Validation{}

//用户名不空
isName := valid.Required(name, "name")
if !isName.Ok {
c.ErrorJson(500, "用户名不合法", nil)
}
//密码 >6<12
isMinPassword := valid.MinSize(password, 6, "password")
if !isMinPassword.Ok {
c.ErrorJson(500, "密码值需大于6位", nil)
}
isMaxPassword := valid.MaxSize(password, 12, "password")
if !isMaxPassword.Ok {
c.ErrorJson(500, "密码值需小于12位", nil)
}

//验证邮箱格式
isEmail := valid.Email(email, "email")
if !isEmail.Ok {
c.ErrorJson(500, "邮箱不合法", nil)
}
//TO DO 队列验证邮箱真实性

//1.验证-验证码
isCpt := cpt.VerifyReq(c.Ctx.Request)
if !isCpt {
c.ErrorJson(500, "验证码不合法", nil)
}

//24小时制
timeObj := time.Now()
var str = timeObj.Format("2006-01-02 15:04:05")
user := models.Users{Name: name, Email: email, Password: models.Md5(password), Created_at: str}
//TO DO
//里面需在查一遍 做最后层的筛查 比如:数据是否存在|验证邮箱重复 等等

//插入
models.AddUser(&user)
fmt.Println(user)

c.SuccessJson("注册成功")
//c.Ctx.WriteString("注册成功!")
}

前端:

{{template "public/header.html" .}}
<div class="container">
    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="row clearfix"><div class="col-md-12 column"></div></div>
            <div class="row clearfix">
                <div class="col-md-12 column">
                    <div class="row clearfix">
                        <div class="col-md-4 column"></div>
                        <div class="col-md-4 column" style="border: 1px solid #eee;margin-top: 10%;padding-bottom: 50px">
                            <h3 style="padding: 5rem;">注册界面</h3>
                            <form class="form-horizontal" id="myForm" action="/register" method="post" role="form">
                                <div class="form-group">
                                    <label for="inputEmail3" class="col-sm-2 control-label">账&nbsp号</label>
                                    <div class="col-sm-10">
                                    <input type="name" name="name" class="form-control" id="name" placeholder="请输入用户名" />
                                    <span id="check_user" style="font-size: 8px;color: red;display: none;"></span>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label for="inputPassword3" class="col-sm-2 control-label">密&nbsp码</label>
                                    <div class="col-sm-10"><input type="password" name="password" class="form-control" id="inputPassword3" placeholder="请输入密码" /></div>
                                </div>
                                <div class="form-group">
                                    <label for="inputEmail3" class="col-sm-2 control-label">邮&nbsp箱</label>
                                    <div class="col-sm-10"><input type="email" name="email" class="form-control" id="inputEmail3" placeholder="请输入邮箱" /></div>
                                </div>
                                <div class="form-group">
                                    <label for="inputPassword3" class="col-sm-2 control-label">验&nbsp证&nbsp码</label>
                                    <div class="col-sm-10">
                                    <input type="text" name="captcha" class="form-control" placeholder="请输入验证码" />{{create_captcha}}
                                    </div>
                                </div>
                                <div class="form-group">
                                    <div class="col-sm-offset-2 col-sm-10"><button type="submit" class="btn btn-default">注册</button></div>
                                </div>
                            </form>
                        </div>
                        <div class="col-md-4 column"></div>
                    </div>
                </div>
            </div>
            <div class="row clearfix">
                <div class="col-md-2 column"><dl></dl></div>
                <div class="col-md-8 column"><dl></dl></div>
                <div class="col-md-2 column"> </div>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript">
    $(document).ready(function() {
        // bind form using ajaxForm
        $('#myForm').ajaxForm({
            dataType:  'json',
            // success:   processJson
            success: function(data){ console.log(data); 
                if (data.Code == 200) {
                    alert(data.Msg);
                    location.href = "/user";
                }else{
                    $("#check_user").html(data.Msg);
                    $("#check_user").css("display","block");
                };
            }
        });
    });
</script>
{{template "public/footer.html" .}}

测试一下看看效果

reg.png



登录代码:(这个我就简单的写写了,有兴趣的可以按注册代码改写)

//登录页模板
func (c *UserController) Login() {
//判断一下是否登录
c.TplName = "login.html"
}

//登录post 单条数据查询
func (c *UserController) Info() {
//获取get值
name := c.GetString("name")
password := c.GetString("password")

//2.判断数据是否合法
if name == "" || password == "" {
c.ErrorJson(500, "账号||密码不合法", nil)
}

//1.验证-验证码
isCpt := cpt.VerifyReq(c.Ctx.Request)
if !isCpt {
c.ErrorJson(500, "验证码不合法", nil)
}

//3.查询账号密码是否正确
o := orm.NewOrm()
user := models.Users{}
user.Name = name
user.Password = models.Md5(password)
err := o.Read(&user, "Name", "Password")
if err != nil {
c.ErrorJson(500, "账号密码错误", nil)
} else {
c.SetSession("username", name)
c.SetSession("userid", user.Id)
c.SetSession("useremail", user.Email)
}

c.SuccessJson("登录成功")

//4.跳转 改前端跳
//c.Ctx.Redirect(302, "/user")
}

前端代码也不贴了,跟注册一样,

如果你比较懒的话 登录注册也可以共用一个view的


  • 上一条:
    hyperf2.1框架使用Dockerfile部署流程步骤
    下一条:
    Laravel 9.5版本发布
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在go语言中实现字符串可逆性压缩及解压缩功能(0个评论)
    • 使用go + gin + jwt + qrcode实现网站生成登录二维码在app中扫码登录功能(0个评论)
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 近期文章
    • 在go语言中实现字符串可逆性压缩及解压缩功能(0个评论)
    • 使用go + gin + jwt + qrcode实现网站生成登录二维码在app中扫码登录功能(0个评论)
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2017-09
    • 2020-03
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-12
    • 2021-01
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-08
    • 2024-11
    • 2025-02
    • 2025-04
    • 2025-05
    • 2025-06
    • 2025-08
    • 2025-11
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客