所以我正在创建一个登录表单,这段代码给了我一些麻烦。我知道它可能不是最有效或最安全的方式,但现在我只需要它起作用,所以我可以正确测试其他方面。
我在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注入或类似注册不是问题,因为它不会有任何实际的安全问题。
由于
答案 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
}