登录名:区分大小写的Xcode/PHP
我对Xcode和客户登录功能有问题。 2个文本字段:一个用于名称,一个用于密码 例如,在我的数据库中,密码是“Hello”。 但是我可以键入“Hello”或“Hello”(不区分大小写)来满足登录条件 我能做些什么使它区分大小写?(在Xcode或PHP中?) .php文件:登录名:区分大小写的Xcode/PHP,php,xcode,login,case-sensitive,Php,Xcode,Login,Case Sensitive,我对Xcode和客户登录功能有问题。 2个文本字段:一个用于名称,一个用于密码 例如,在我的数据库中,密码是“Hello”。 但是我可以键入“Hello”或“Hello”(不区分大小写)来满足登录条件 我能做些什么使它区分大小写?(在Xcode或PHP中?) .php文件: $Nickname = $_GET["User"]; $Password = $_GET["Password"]; $query = "SELECT Count(*) FROM kunde WHERE Nickname=
$Nickname = $_GET["User"];
$Password = $_GET["Password"];
$query = "SELECT Count(*) FROM kunde WHERE Nickname='$Nickname' AND Password='$Password'";
$result=mysql_query($query) or die("error");
$num = mysql_numrows($result);
mysql_close();
$rows = array();
while ($r = mysql_fetch_assoc($result))
{
$rows[] = $r['Count(*)'];
}
echo json_encode($rows);
您不应该以纯文本形式存储密码。使用类似sha1()的散列函数和salt。您的密码将区分大小写
$Password = sha1($Password . 'somerandomstring');
您需要在存储密码和检查密码之前使用它。sha1()将始终使用相同的输入生成相同的字符串
对于数据库中的其他字段,可以通过使用适当的排序规则来确保它们区分大小写。现在您正在使用的是utf8\u general\u ci。结尾的“ci”部分表示不区分大小写。将其更改为utf8\u general\u cs将解决此问题。您不应以纯文本形式存储密码。使用类似sha1()的散列函数和salt。您的密码将区分大小写
$Password = sha1($Password . 'somerandomstring');
您需要在存储密码和检查密码之前使用它。sha1()将始终使用相同的输入生成相同的字符串
对于数据库中的其他字段,可以通过使用适当的排序规则来确保它们区分大小写。现在您正在使用的是utf8\u general\u ci。结尾的“ci”部分表示不区分大小写。将其更改为utf8\u general\u cs将解决此问题。您也可以将该列作为二进制查询,并区分大小写:
$query = "SELECT Count(*) FROM kunde WHERE Nickname='$Nickname' AND binary Password='$Password'";
请记住转义$昵称和$Password以避免[sql注入][1]。(http://en.wikipedia.org/wiki/SQL_injection)您还可以以二进制形式查询该列,并且该列区分大小写:
$query = "SELECT Count(*) FROM kunde WHERE Nickname='$Nickname' AND binary Password='$Password'";
请记住转义$昵称和$Password以避免[sql注入][1]。(http://en.wikipedia.org/wiki/SQL_injection)Xcode在这方面的作用是什么?你能告诉我们你对数据库/表使用的是哪种mysql排序规则吗?你可以在php代码中使用strcmp()函数来检查它,或者将表编码从_ci(case insensetive)改为_cs(case senetive),我使用的是“utf8\u general\u ci”。在德语中,我们需要“ä”、“ö”或“ü”以及诸如“&”或“ñ”之类的符号……Xcode在这方面的作用是什么?您能告诉我们您的数据库/表使用的是哪种mysql排序规则吗?您可以在php代码中使用strcmp()函数来检查它,或者将表编码从_ci(case insensetive)更改为_cs(case senetive),我正在使用的是“utf8_general_ci”。在德语中,我们需要“ä”、“ö”或“ü”以及诸如“&”或“ñ”之类的符号……好的,谢谢,我会试试的!其他字段显示正确。但是密码字符串的比较不完全正确。好的,谢谢,我会试试!其他字段显示正确。但密码字符串的比较并不准确。