使用注册表单,不断说密码不正确

时间:2014-06-02 13:52:30

标签: php mysql sql

所以我正在创建一个登录表单,这段代码给了我一些麻烦。我知道它可能不是最有效或最安全的方式,但现在我只需要它起作用,所以我可以正确测试其他方面。
我在count语句中使用了SELECT,但我现在不确定如何将其转换为IF ELSE语句。如果有人能帮助我,那就太棒了。

$result=mysqli_query($con, "SELECT count * FROM User WHERE LoginID = '$LoginID' AND password ='$password'");
if($result==1)
{ 
    echo "Log In Success!";
    echo $_SESSION['LoginID']; 
}
else
{
    echo "Wrong Username or Password";}
    echo '<a href="logIn2.html"> Click here to try again </a>'
}

我也尝试过使用

$numrows = mysql_num_rows($result);
if($numrows != 0) { ... }

但我也无法做到这一点。 SQL注入或类似注册不是问题,因为它不会有任何实际的安全问题。

由于

2 个答案:

答案 0 :(得分:0)

我认为你正在尝试MySql和PHP 作为使用count函数查找有效用户的想法,您应该记住这些注释:

  

注1:使用count功能与Count(*)类似   注意2:如果找不到记录Count(*)将返回null而不是0,那么您需要其他功能,例如ifnull(,)

所以你的select语句应该是这样的:

SELECT IFNULL((SELECT count(*) FROM User WHERE LoginID = '$LoginID' AND password ='$password'), 0) 

实际上我不会在MySql中尝试该查询,所以我希望有人编辑它;)。

另一个想法是你的select语句是这样的(使用mysql_num_rows):

SELECT LoginID FROM User WHERE LoginID = '$LoginID' AND password ='$password'

答案 1 :(得分:0)

只需为用户选择可能为id的字段,而不是进行计数。

$result = mysqli_query($con, "SELECT id FROM User WHERE LoginID = '$LoginID' AND password ='$password'"))

if ($result && mysqli_num_rows($result) > 0) {
    // valid
} else {
    // invalid
}