发布网友 发布时间:2022-04-21 12:13
共7个回答
热心网友 时间:2022-05-19 15:12
你说的问题有二个可能:
A:用户已经报名了,又再次报名
B:不同的用户报名,但名字一样
解决方法:
A:用户报名后用session("user")来判断,如果不为空,则提示已经报过名;
例:
添加报名页面代码
<%
if session("user")<>"" then
response.write "<script language='javascript'>window.confirm('你已经报过名了!')</script>"
response.write "<script language='javascript'>parent.window.history.go(-1);</script>"
response.end
esle
// 打开数据库前先判断,如果session("user")不为空,刚提示已经报过名了,返回到上一页面;相反,如果session("user")为空,则执行下面的代码
set rs=server.createobject("adodb.recordset")
sql="select * from 表名 where user='"&Request("user")&"'"
rs.open sql,conn,1,3
if not rs.eof then
response.write "<script language='javascript'>window.confirm('数据库中已存在用户名!')</script>"
response.write "<script language='javascript'>parent.window.history.go(-1);</script>"
response.end
else
rs.AddNew
rs("user")=Request("user")
rs.update
session("user")=user //用户报名后会传递此值
rs.close
set rs=nothing
end if //判断结束语句
%>
B:在数据添加时加个条件判断,如果数据库中已存在相同名字,刚返回报名页面,并提示已有此用户名。
例:
假定数据库中用户名字段为user及表单页的输入用户名的表单名为user
<%
set rs=server.createobject("adodb.recordset")
sql="select * from 表名 where user='"&Request("user")&"'" //打开数据库的条件
rs.open sql,conn,1,3
if not rs.eof then //如果打开数据库的条件成立(意思数据库中已有此用户名),则输出
response.write "<script language='javascript'>window.confirm('数据库中已存在用户名!')</script>"
response.write "<script language='javascript'>parent.window.history.go(-1);</script>"
response.end //输出语句结束
else //如果相反(打开数据库的条件不成立,也就意思数据库中没有同名的的用户)
rs.AddNew //添加用户代码
rs("user")=Request("user")
rs.update //添加用户代码结束
rs.close
set rs=nothing //数据库连接结束
%>
热心网友 时间:2022-05-19 16:30
一般就是通过是真实名称或者手机号或者是身份证来过滤的吧!
通常来说报名考试系统都是要真实名称【可能重复名称】的或者手机号或者身份证等唯一序列,
但是名称也有可能是重名,所以我觉得用手机号比较快,在提交的时候验证下手机号码是否是合格的号码,然后就可以通过sql语句过滤了,没找到记录,添加记录,否则返回已经提交过了
热心网友 时间:2022-05-19 18:05
防止用户重复提交的方式有多种,基础是在数据入库前,一定要先判断是否已经存在相同关键词的数据了,如果存在,直接拒绝。提交前的预防方法,常用的:
提交界面增加 图片验证码
点击提交按钮后,在数据回发前,禁用掉 提交按钮
给每次的表单生成一个随机码,和其他信息一同提交
热心网友 时间:2022-05-19 19:56
不要用cookies来做这种校验,最好还是在每次提交保存前,判断一下是否有报名记录为好!
热心网友 时间:2022-05-19 22:04
可以使用COOKIES,具体方法百度一大堆。
热心网友 时间:2022-05-20 00:29
<%
'=====================================
'创建/修改Cookies
'=====================================
Function Add_Cookies(ByVal t0,ByVal t1)
IF Len(t1)=0 Or IsNull(t1) Then t1=""
Response.Cookies(cookies_&t0)=t1
End Function
'=====================================
'读取Cookies
'=====================================
Function Load_Cookies(ByVal t0)
Load_Cookies=Request.Cookies(cookies_&t0)
End Function
'=====================================
'检测是否报名Cookies
'=====================================
if Load_Cookies("baoming")=1 then
response.write("<script language='javascript'>alert('您已经报过名了!');history.back(-1);</script>") '已报名,提示返回
else
Add_Cookies "baoming","1" '首次报名,写入COOKIES
end if
%>
热心网友 时间:2022-05-20 03:10
http://www.w3school.com.cn/asp/coll_cookies_request.asp