如何防止用户重复提交

yyychn 2017-11-19 04:38:04
某ASP预约系统,可以让用户预约每天的早饭、中饭和晚饭,用户可以一次预约一个餐次,也可以一次性预约两个餐次或者三个餐次,现在的问题是,有人已经预约过早饭了,然后又来预约一次,结果造成了重复预约。用户每次预约的记录都会记录在record表中,因为可以多选,所以记录会不完全统一,比如预约早饭则记录早饭的id比如说1,预约早饭和晚饭就记录早饭,晚饭的id比如说1,3, 就是说多次的记录之间用逗号隔开。
现在的想法是:当用户预约过某个餐次后,他已经选择过的餐次就不让再选择了,再选择就会提示他某个餐次已经预约过。求高手们指教如何实现。
...全文
1239 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 您的网络发生故障,内容加载失败! 2018-01-12
  • 打赏
  • 举报
回复
只能判断了呀,你想想人工怎样判断重复,然后程序算法实现人工判断的。 其实想想很简单,判断某人在某天是否预约了早饭,能通过select查询出来吧? where id=xx and datex=xxx and tag=早饭,存在就是预约过了,不存在就是没预约呢。
qq_26187371 2018-01-11
  • 打赏
  • 举报
回复
做相应索引防止重复就行了+ 判断
cde32 2017-12-18
  • 打赏
  • 举报
回复
预约之前先判断一下就行
springxxs 2017-12-16
  • 打赏
  • 举报
回复
学习,asp还是很多人用啊
liudianhalf 2017-12-13
  • 打赏
  • 举报
回复
前端生成复选框的时候 ... bookmark=rs("bookmark")' 1,2,3或者 1,3之类的,你的是预约一次就生成一条记录,可以循环拼接一下 <lable><input type="checkbox" name="bookmark" id="bookmark1" value="1" <% if instr(bookmark,"1")>0 then response.write "enabled=""false""" end if %>> 早餐</label> <lable><input type="checkbox" name="bookmark" id="bookmark1" value="2" <% ... %>> 午餐</label> <lable><input type="checkbox" name="bookmark" id="bookmark1" value="3"<% ... %> > 晚餐</label> 后端,既然可以出现重复记录,最简单的办法就是按照订餐属性拆分,消灭那个逗号,这样做数据统计的时候也比较简单 如果希望每天每个用户的订餐就是一条数据,那前端输出判断后的处理,改成 response.write "checked",后端没有该用户当天订餐记录新增,有就更新
什么都不能 2017-12-06
  • 打赏
  • 举报
回复
前后端都要控制,预约过的不能再让用户选,后台也要控制,防止绕过浏览器的限制。
  • 打赏
  • 举报
回复
做相应索引防止重复就行了
hookee 2017-11-20
  • 打赏
  • 举报
回复
SELECT COUNT(*) FROM record WHERE user_id=11111 AND ',' + field + ',' LIKE '%,' + 查询的早(中晚)饭id + ',%'
Go 旅城通票 2017-11-20
  • 打赏
  • 举报
回复
先读数据库判断是否已经预约过对应的餐次,已经预约过就输出提示信息,否则再入库

Web开发学习资料推荐
javascript客户端图片预览
jQuery dataType指定为json注意事项
区区小爱 2017-11-20
  • 打赏
  • 举报
回复
user=Replace(request.Form("user"), "'", "''") set rs=server.createobject("adodb.recordset") sql="select * from 表where 用户名='"& user &"'" rs.open sql,conn,1,1 if not (rs.Bof or rs.eof) then response.write("<script language=javascript>") response.write("alert('请不要重复预约!');") response.write("javascript:history.back(1)") response.write("</script>") response.end else 要处理的数据 end if
Msxindl_Com 2017-11-19
  • 打赏
  • 举报
回复
这个问题应该好解决。最关键的是根据该用户的预定情况再做处理。可以在用户登录后就执行订单查询,如果不允许取消预约,则已预约的项可设置disabled或display=none;如果允许取消预约,已预约的项可设置成选中状态可复选,提交后更新该用户的订单即可。如果是第一次预约,提交后创建新的订单即可。
Dy大叔 2017-11-19
  • 打赏
  • 举报
回复
最简单的方式:在数据表中增加一个字段用作判断,当用户今天预约过后,记录下用户对应餐次的时间,记录在字段,每当用户要再次预约时,对字段进行读取,发现已经有记录产生后,提示他,同时中断这次预约。

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧