自动用户名建议

时间:2010-02-09 13:17:16

标签: mysql

如果已经使用了用户名,我想要一个自动用户名建议,使用mysql过程

1 个答案:

答案 0 :(得分:0)

根据用户名建议,您是否希望在登录表单上预先输入预先填写自动填充功能(即,一旦键入了用户名的几个字符,应用程序将显示与提供的用户名匹配的所有用户名),或者如果新用户提供现有用户名,您是指提供潜在备用用户名的建议框吗?

如果你正在寻找第一个,我会建议避免这个。通过为用户名提供服务器端自动完成功能,您可以提供一种简单的方法来访问系统中所有用户的名称并降低安全性(因为未经许可尝试访问您网站的人只需要确定密码而不是密码用户名和密码)。

如果是第二种,一种常见的方法是在现有用户名的末尾附加数字,以提供不存在的用户名。我建议在MySQL和您正在使用的任何服务器端语言的组合中执行此操作。

首先,获取以提供的用户名(并且已经存在)开头的所有用户名:

SELECT user_name FROM users where user_name LIKE @userName + '%'

然后,使用服务器端语言,执行以下操作(伪代码)

let user = username supplied (already exists)
let recordset = recordset from db call (above)    

i = 0
alternateCount = 0
alternatesFound = new string[5]
while (alternateCount < 5 And i < 100)
    potentialName = user + i
    if (recordset does not contain potentialName)
       alternatesFound[alternateCount] = potentialName
       alternateCount++
    end if
end while

这样做会尝试在提供的用户名中插入过多的数字(1,2,3)等,直到找到5个用户名唯一的情况。如果使用user1-user99,它最多也会进行100次迭代(你可以增加它,但限制并不是一个坏主意。