汽车用户名建议

问题描述:

我希望有一个自动的用户名建议如果用户名已被使用,用mysql程序汽车用户名建议

通过用户名的建议,你的意思是你想登录表单上预先输入的自动完成(即一旦你输入应用程序将显示与提供的用户名匹配的所有用户名),或者,如果新用户提供现有用户名,您是否意味着提供潜在备用用户名的建议框?

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

如果是第二种,一种常见方法是在现有用户名末尾添加数字以提供不存在的用户名。我建议在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种情况。它也做了最多100次迭代的情况下user1 - user99被采取(你可以增加这个,但是限制不是一个坏主意

+0

谢谢瑞恩为你的支持, 可以请你告诉我处理所有逻辑这在一个mysql的存储过程中。 谢谢 – kiks 2010-02-09 13:39:29

+0

你将不得不做一些你自己的编码,@kiks。 – ceejayoz 2010-02-09 13:56:34