博客后台登录,用户,说说等功能实现

后台登录

后台登录页面效果图如下:
这里写图片描述
该页面主要实现登录功能,在用户输入对应的数据并点击登录按钮的时候,在后台获取对应的信息,根据账号在数据库中查询数据,如果没有该用户或出现其他错误会在前台给与对应的提示。如果用户勾选了记住一周需要将用户登录的信息存储到cookie中,并设置cookie的存活时间为一周。

func (this *AccountController) Login() {
    //判断该请求是不是通过点击点击登录按钮传递过来的
    if this.GetString("dosubmit") == "yes" {
        //获取账号并去除两边的空格
        account := strings.TrimSpace(this.GetString("account"))
        //获取密码并去除两边的空格
        password := strings.TrimSpace(this.GetString("password"))
        //获取是否记住一周并去除两边的空格
        remember := strings.TrimSpace(this.GetString("remember"))
        //判断账号和密码是否为空
        if account != "" && password != "" {
            //创建用户结构体
            var user = &models.User{}
            //将获取到的账号赋值给结构体
            user.Username = account
            //根据账号查询用户,并且判断查询到的密码和用户输入的密码通过MD5哈希之后的结果是否一样
            if user.Read("username") != nil || user.Password != models.Md5([]byte(password)) {
                this.Data["errmsg"] = "账号或密码错误!"
            }else if user.Active == 0 {
  //判断该账户是否激活
                this.Data["errmsg"] = "该账号尚未激活!"
            }else {
                //登录次数加一
                user.Logincount += 1
                //更新登录次数
                user.Update("logincount")
                //对密码进行哈希
                authkey := models.Md5([]byte(password))
                //判断用户是否勾选了记住一周
                if remember == "yes" {
                    //设置一个存活一周的cookie
                    this.Ctx.SetCookie("auth", strconv.Itoa(user.Id) + "|" + authkey, 60*60*24*7)
                }else {
                    //设置一个cookie,默认存活3600秒
                    this.Ctx.SetCookie("auth", strconv.Itoa(user.Id) + "|" + authkey)
                }
                //重定向,网址A随时有可能改主意,重新显示本身的内容或转向其他的地方
                this.Redirect("/admin", 302)
            }
        }
    }
    //设置模板名称
    this.TplName = "admin/account_login.html"
}

系统信息

效果图如下:
这里写图片描述
该页面主要实现了系统信息以及博客系统中的一些主要信息。

func (this *IndexController) Index() {
    this.display()
    //主机名称
    this.Data["hostname"], _ = os.Hostname()
    //go语言版本
    this.Data["gover"] = runtime.Version()
    //操作系统
    this.Data["os"] = runtime.GOOS
    //处理器架构,例如:amd64(x64):64位处理器,x32:32位处理器
    this.Data["arch"] = runtime.GOARCH
    //cpu数量
    this.Data[&#
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值