关于验证用户名是否存在的问题

今天新开了个工程,在写注册部分的时候,突然想到个问题,在此记下,作为以后的提醒

问题如下:

如今不管是注册邮箱,论坛,还是QQ,当我们注册的用户的时候,都会先验证一下用户名是否存在
,当验证的时候无所谓就是去数据库查询是否有该名字。

现在问题来了,这时候的验证只是个查询操作,并没有更新数据库中的数据,但别忘了作为一个网络应用,你在注册的同时,别人也在注册,如果恰巧去验证同一个名字的合法性,专业点来说,就是第二个会话提交了相同的查询参数。因为数据库的数据没有更新,第二个用户(会话)验证相同名字的时候也会“合法”。

这时候在你真正submit的时候,后提交的那个用户(会话)还是会提示用户名存在等信息,这也就是失去了当初验证用户名那步的意义了。

当然解决这些问题有很多办法,表单分步提交,使用缓存机制等等

以上问题测试了一下163 126 sina 的邮箱注册

sina做的还不错,虽然也会出现以上的问题,但是他把除了账号密码的其他资料应该是放到隐藏域或是缓存等地方了,让我们只需要再改下用户名就好

126的相对不好点,除了验证码过期刷新无效外,还在出现以上问题的时候转向文件无效~(可能他们就没考虑到之前已经验证过了,后面的这点“意外吧”)

其他一些小网站就不说什么了,基本都是要重新再填次资料~

以上对各网站的看法,只是作者作为学习中的资料来使用,不作为对网站实际设计的好坏评价。特此声明~

因为是东西都会有毛病,自己以后注意就是了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值