这适用于登录系统。当我希望用户登录时,我希望它获取给定的密码,并将其与给定行的“密码”列进行比较......在这种情况下$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>
答案 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注入,并且用户的密码也是安全的。