如何处理PHP表单中的唯一用户名

时间:2014-02-09 12:52:09

标签: php

我有一个注册表单,其中包含以下步骤:

  1. 填写用户信息(姓名,地址等)和用户名
  2. 如果用户按下提交按钮,则会检查用户名是否已在数据库中
  3. 如果用户名已被使用,他必须重命名用户名,否则,会显示他输入的内容(姓名,地址等)。
  4. 他必须确认网站规则,并且他的输入数据是正确的。如果他按下确认按钮,则会在数据库中插入包含其详细信息和用户名的行。
  5. 我不想在第2步之后在数据库中插入行,因为我不希望数据库中没有确认规则的用户的行。另外我想保留第3步,这样用户就可以确保他的数据是正确的。不幸的是,目前代码无法防止两个用户同时使用相同的用户名注册的不太可能的情况。一般来说如何防止这种情况?我知道有很多php表单可以继续执行这4个步骤。

    编辑:对不起,我没说清楚:我不关心我的数据库中的双重条目,这可以通过设置用户名字段唯一来防止。我想知道如何在步骤2中检查在当前使用注册表单的任何其他用户未使用的数据库 AND 中未使用用户名。

2 个答案:

答案 0 :(得分:3)

数据库中的数据完整性应由数据库确保,而不是由接口确保。 这意味着如果你想要UNIQUE用户名,你应该在数据库中使用内置的UNIQUE索引。

这样就不可能有两个同名的用户,即使他们同时注册。

<强>更新

根据您上次的编辑,我可以创建一个临时表,您可以在步骤2中插入用户名,假设您的用户表中不存在该用户名。这样,用户可以“锁定”用户名,直到他们在步骤4中完成注册。

一旦他们到达第4步,您就可以将数据从临时表移动到用户表。

答案 1 :(得分:0)

所以这是你可以做的,但要确保@chevi说什么..改变你的表并添加唯一的属性,即用户名栏......全部在后端...

现在来了前端 ..在用户选择/输入用户名时,您可以进行 ajax调用,检查用户在您的数据库中输入的用户名并返回 TRUE或FALSE ,然后您可以通知用户嘿此用户名已被采取也可以限制用户提交该表单