马上要开学了,作为学校协会程序部的老部长,要为协会做一个会员注册系统。之前的注册系统有bug,也是我的上上界部长的作品了。所以我也没深入研究,干脆自己写个小程序。
一天时间,写完了包括会员注册、会员上课签到、将信息导出Excel表格等多个功能。
这篇文章呢,就讲一下,会员在注册的时候,一个实时验证码。
验证码的作用是为了防止学生乱注册,是报名现场在管理端实时显示的一个验证码。
大体思路: 管理端能够开放注册和关闭注册,这个主要是判断数据库里的一个集合,有个字段为Code,Code为零的时候是未开启注册,为非零时开启注册。(非零是一个随机的六位数字)
管理端开启注册通道,直接修改Code值为一个随机的六位数字。关闭注册通道修改Code为零。
然后在注册页面实时监测数据库Code值的变化,如果为0就将注册按钮设为不可用,否则可用。
当一个学生注册完信息之后,紧接着修改Code,管理端Code的值也是实时监测改变。
相信,我上面说了这段话之后,很多同学就应该明白如何写代码了。下面我列出一些核心代码,界面代码需要你自己写哦~
开启注册的代码:
wx.showModal({
title:'提示',
content:'确定开启会员注册吗?',
success:res=>{
if(res.confirm){
const randomNum = Math.floor(Math.random()*1000000)
db.collection('registerCode').doc(this.data.regDoc).update({
data:{
Code:randomNum
},
success:res=>{
wx.showToast({
title: '已开启注册',
icon:'success'
})
}
})
}
}
})
在页面中实时监听验证码的变化,及时更新:
db.collection('registerCode').doc(this.data.regDoc).watch({
onChange: snapshot=> {
if(snapshot.docChanges[0].doc.Code==0){
this.setData({
codeText:'暂未开启注册',isopen:false})
}else{
this.setData({
codeText:snapshot.docChanges[0].doc.Code,
isopen:true
})
}
},
onError: err=> {
console.error('the watch closed because of error', err)
}
})
关闭注册:
wx.showModal({
title:'提示',
content:'确定关闭注册吗?',
success:res=>{
if(res.confirm){
db.collection('registerCode').doc(this.data.regDoc).update({
data:{
Code:0
},
success:res=>{
wx.showToast({
title: '已关闭注册',
icon:'success'
})
}
})
}
}
})
当一个学生注册完信息之后立即更新验证码:
const randomNum = Math.floor(Math.random()*1000000)
db.collection('registerCode').doc(this.data.doc).update({
data:{
Code:randomNum
}
})
学生注册的时候,输入的验证码就与这个Code进行对比,正确就录入信息,相反就提示错误。
好了,上面的大致思路就是这些,总的来说还是很简单的。有问题可以下方留言问我哦~