$result=mysql_query("SELECT * FROM superhidden WHERE username = '$username' AND password='$password'");
$credentials = mysql_num_rows($result);
echo $credentials;
这与0相呼应!当$ username = admin和$ password = admin ...并且supperhidden表包含一行admin |管理员
答案 0 :(得分:1)
我要检查的第一件事是表格列和$username/$password
变量中的前导或尾随空格。
您可以使用以下内容检查数据库中的前导或尾随空格:
select *
from superhidden
where username like ' %'
or username like '% '
or password like ' %'
or password like '% '
您可以使用var_dump
检查变量。
当然,几乎所有所有 PHP / MySQL问题都有近乎强制性的评论:
mysql_*
和$username
都不能用于SQL注入攻击。搜索parameterised queries或SQL injection了解更多详情。以明文形式存储密码通常也是一个坏主意,正如大量数据“盗窃”所证明的那样,最新的数据是美国的Target,其中约有7000万客户受到影响。有一个很好的质量保证here可以提供一些指导。