asp中防止用户重复提交报名的方法
我用asp做了个网站;有个在线报名的表单提交;放到服务器上后;有很多用户多次提交重复的数据;造成了垃圾信息;我想要用cookies来验证用户是否提交过信息;然后如果提交后...
我用asp做了个网站;有个在线报名的表单提交;放到服务器上后;有很多用户多次提交重复的数据;造成了垃圾信息;
我想要用cookies来验证用户是否提交过信息;然后如果提交后就直接弹出提示;您已经提交了;请不要重复提交;
哪位帮忙提供下这个代码;O(∩_∩)O谢谢 展开
我想要用cookies来验证用户是否提交过信息;然后如果提交后就直接弹出提示;您已经提交了;请不要重复提交;
哪位帮忙提供下这个代码;O(∩_∩)O谢谢 展开
7个回答
展开全部
你说的问题有二个可能:
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 //数据库连接结束
%>
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 //数据库连接结束
%>
展开全部
一般就是通过是真实名称或者手机号或者是身份证来过滤的吧!
通常来说报名考试系统都是要真实名称【可能重复名称】的或者手机号或者身份证等唯一序列,
但是名称也有可能是重名,所以我觉得用手机号比较快,在提交的时候验证下手机号码是否是合格的号码,然后就可以通过sql语句过滤了,没找到记录,添加记录,否则返回已经提交过了
通常来说报名考试系统都是要真实名称【可能重复名称】的或者手机号或者身份证等唯一序列,
但是名称也有可能是重名,所以我觉得用手机号比较快,在提交的时候验证下手机号码是否是合格的号码,然后就可以通过sql语句过滤了,没找到记录,添加记录,否则返回已经提交过了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
防止用户重复提交的方式有多种,基础是在数据入库前,一定要先判断是否已经存在相同关键词的数据了,如果存在,直接拒绝。提交前的预防方法,常用的:
提交界面增加 图片验证码
点击提交按钮后,在数据回发前,禁用掉 提交按钮
给每次的表单生成一个随机码,和其他信息一同提交
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不要用cookies来做这种校验,最好还是在每次提交保存前,判断一下是否有报名记录为好!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用COOKIES,具体方法百度一大堆。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询