在sql中选择特定的单元格

时间:2012-07-20 21:34:55

标签: php 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>

3 个答案:

答案 0 :(得分:2)

您应该使用mysql_fetch_assoc按名称查询resultset中的列。

答案 1 :(得分:1)

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

WHERE username ='“。$ usernameinput。”'和password ='“。$ passwordinput。”''

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

另外需要注意的是,出于安全和隐私原因,您应始终加密数据库中的密码。看看那个。另外,你应该使用mysqli函数,而不是mysql函数,因为它们具有增强的保护功能。

对格式化感到抱歉,我正在使用手机= /

我的头顶就像是:

$ rows = mysqli_num_rows($ result);

if($ rows&lt; 1){    //没有找到用户名,错误的pw } 其他{    //用户名和pw匹配 }

答案 2 :(得分:1)

$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注入,并且用户的密码也是安全的。