我的网站上有登录/注册系统,但我不知道如何匹配用户名。
如果我有一个名为" Vlajko"并且他只有在输入姓名时才能登录" Vlajko"但不是" vlajko"或任何其他组合,我如何防止注册名为" vlajKO"因为它不符合记录" Vlajko"从数据库进行检查我在PHP中,因为该列区分大小写?
所以,我有用户Vlajko,一个新用户正在尝试注册名称vlajKO(或vlajko)。 PHP通过数据库检查mysqli以获取名为vlajKO的记录,但它无法找到它,因为它不存在,并且Vlajko存在,用户可以使用确切的名称登录,以便列对区分大小写所以系统会让用户注册这个名字而我不想这样。
这有点令人困惑,但我希望你能理解。
答案 0 :(得分:3)
SELECT as smallcase,
SELECT COUNT(*) FROM mytable WHERE LOWER(mytable.login) = LOWER('vlajKO');
如果它从0返回!=那么已经有人将这个名字称为非案例感觉
答案 1 :(得分:0)
更改列'名称' (或者你曾经使用过的)数据库中的主键,并且不可能保存2个具有相同值的条目(不区分大小写)。
答案 2 :(得分:0)
在注册期间检查现有用户名时,请修改条件的mysql查询:
WHERE lower(username) = lower(?s)
,其中?s - 注册用户名