选择sql中的特定单元格


Selecting specific cell in sql

这是用于登录系统的。当我希望用户登录时,我希望它接受给定的密码,并将其与给定行的"密码"列进行比较。。。在这种情况下,$usernameinput,但我使用的方法不起作用。有什么建议吗?

<?php
$usernameinput = $_POST["uname"];
$passwordinput = $_POST["pass"];
if (empty($usernameinput))
{
echo "";
}
else
{
$con = mysql_connect("localhost","STUFFFFF","STUFFFFFF");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

这是它选择的地方

mysql_select_db("STUFFFFF", $con);
$login = mysql_query("SELECT * FROM Users
WHERE Username='$usernameinput'");

while($row = mysql_fetch_array($result))
  {
    $matchpassword = $row['Password'];
  }
}

if (empty($passwordinput))
{
echo "";
}
else
{
if ("$passwordinput"=="$matchpassword")
{
$sqlusername = $usernameinput;
echo "You were logged in successfully, now you can visit the site as $sqlusername. <br />"; 
}
else
{
echo "You have entered an incorrect password.";
}
}
?>
<form action="login.php" method="post">
Username: <input type="text" name="uname" /> <br />
Password: <input type="password" name="pass" /> <br />
<input value="Login" type="submit" />
</form>
$sql = mysql_query('SELECT password FROM users WHERE username="'.mysql_real_escape_string($_POST['username']).'"';
$user = mysql_fetch_assoc($sql);
if ($user['password'] == sha1($_POST['password'])) {
    //Logged in
} else {
    //Wrong password
}

这样可以防止MySQL注入,并且用户的密码是安全的。

您应该使用mysql_fetch_assoc按名称查询结果集中的列。

为什么不将密码参数添加到SQL语句中呢。

WHERE username='".$usernameinput."'和password='"$$passwordinput."'

然后测试是否有任何结果。

还需要注意的是,出于安全和隐私原因,您应该始终加密数据库中的密码。调查一下。此外,您应该使用mysqli函数,而不是mysql函数,因为它们增强了保护。

很抱歉格式化,我正在使用电话=/

在我的脑海里,它会是这样的:

$rows=mysqli_num_rows($result);

if($rows<1){//找不到用户名,密码错误}其他{//用户名和密码匹配}