我有一个包含用户名和密码的数据库。用户名是小写的。但是当我输入大写时它仍然登录。如何修复该错误。
问问题
508 次
3 回答
1
您的数据库可能正在使用默认排序规则,它不区分大小写。
使用区分大小写的排序规则定义您的用户名列,或者在 SQL 查询中显式传递该排序规则。
例子:
SELECT * FROM [User] WHERE username = '<username>' AND password = '<password>' COLLATE latin1_general_cs
这是供您参考的mysql文档:
于 2013-06-30T16:11:28.757 回答
0
如果要将用户名与用户输入进行比较,则必须使用区分大小写的字符串比较函数。
例如,如果您将用户名存储在名为 的表中info
,并通过表单发布获取用户输入的值,那么您的代码应该类似于
$con = mysql_connect ("localhost", "root", "root") or die ("Sorry! There was an error.");
$db = mysql_select_db ("myDB", $con);
$cmd = "select username from info";
$res = mysql_query ($cmd);
$row = mysql_fetch_array ($res);
if (!strcmp ($row['username'], $_POST['username']))
{
//code to handle event where entered username matches.
}
else
{
//code that handles the event when entered username is not on the list.
}
或者,您可以使用==
or===
正如@kallum所说的那样。
希望有帮助。
于 2013-06-30T16:11:48.243 回答
-1
登录功能将只检查匹配的字符串。如果您需要完全匹配(相同的大小写),那么而不是,例如:
if (loginName == databaseName)
采用:
if (loginName === databaseName)
三等号符号应确保匹配每个字符的大小写。
于 2013-06-30T16:04:09.510 回答