当前位置: 首页 > 知识库问答 >
问题:

如何处理PHP形式的唯一用户名

云景焕
2023-03-14

我有一个注册表格,通过以下步骤:

  1. 填写用户信息(姓名,地址等)和用户名
  2. 如果用户按下提交按钮,则检查用户名是否已经在数据库中
  3. 如果用户名已经在使用,他必须重命名用户名,如果没有,则显示他输入的内容(名称,地址等)。
  4. 他必须确认网站规则和他输入的数据是正确的。如果他按下确认按钮,数据库中将插入一行他的详细信息和用户名。

我不想在步骤2之后将行插入数据库中。,因为我不希望数据库中没有确认规则的用户的行。我还想保留第三步。,因此,用户可以确保其数据是正确的。不幸的是,目前代码无法防止两个用户同时使用同一用户名注册这种不太可能的情况。一般来说,如何预防这种情况?我知道有很多php表单会继续执行这4个步骤。

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

共有2个答案

司空浩邈
2023-03-14

下面是你能做的,但要确保@chevi说了什么。。更改表并添加用户名列的唯一属性。。。这一切都在后台。。

表单中,当用户选择/输入用户名时,你可以进行ajax调用,检查用户在数据库中输入的用户名,并相应地返回TRUE或FALSE,然后你可以在那里通知用户,嘿,这个用户名已经被取了您可以限制用户提交该表单

孙修贤
2023-03-14

数据库中的数据完整性应由数据库而不是接口来保证。这意味着,如果您想要唯一的用户名,您应该使用数据库中内置的唯一索引。

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

更新:

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

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

 类似资料:
  • 问题内容: 我正在使用任何具有唯一性的应用程序,每当最终用户输入他的应用程序时,我都会通过Ajax发出SQL查询,以检查是否存在该查询。在此之前,它工作正常,但现在我知道那是什么时候存在,那么我想在JSP页面上显示该ID已被使用,反之亦然。 所以我的问题是如何从struts应用程序获取响应并将其提供给Ajax或JSP页面,以及在“ struts.xml”结果标签中写入什么? 这是我的Ajax呼叫:

  • 问题内容: 当违反唯一约束时,将引发a。但是可能有多种原因抛出异常。我如何才能发现违反了唯一约束? 问题答案: 我如何才能发现违反了唯一约束? 异常是链接在一起的,您必须递归调用以获取提供程序特定的异常(并可能转到),以将其转换为应用程序可以很好地为用户处理的内容。下面将打印异常链: 对于异常处理和“翻译”,您可以执行类似于Spring的操作(请参阅各种类,例如,以获取想法)。 所有这些都不是很好

  • 有段代码如下: 获取到的 str 变量的结果为: 我现在期望以 这种处理方法将那个 6 和 0 清除掉,请问大神该怎么写啊?小弟跪谢。

  • 我使用下一个endpoint来获取“https://graph.microsoft.com/v1.0/users/?$select=id,displayName,mail,userPrincipalName“根据文档:https://learn.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0没有关于用户资源类型的唯一

  • 我正在Go中编写一个应用程序,它将接收两种形式的JSON: 例1: 示例2: 我想我可以创建一个如下所示的结构,并将JSON解组到其中: 但这只适用于第一个例子。 如何处理两个示例中的 JSON?

  • 具体代码如下: 请大神帮忙看下,谢谢。