我在mysql中有一个简单的表:
id int 11 //user id
log_meno varchar(255) //user name
cmp_heslo varchar(255) //user password
在这张表中我有一条记录:
id is 1
log_meno is kuki
cmp_heslo is 839512db1882dff3fcb596012982790870f6f06e //it is hashed word kuki by sha1
比我在html中的登录表单
<form action="login.php" method="post">
<tr><td>Prihlasovacie meno: </td><td><input type="text" name="login_name" ></td></tr>
<tr><td>Heslo: </td><td><input type="password" name="login_password"></td></tr>
<tr><td colspan="2"><input type="submit" value="Prihlásiť"></td></tr>
<tr><td colspan="2"><a href="#">Zabudnuté heslo</a></td></tr>
</form>
最后我有login.php文件
<?php
include ('conn.php');
//Uzivatelsky vstup
$log_meno = mysqli_real_escape_string ($Conn, $_POST['login_name']);
$cmp_heslo = sha1($_POST['login_password']);
$sql = "SELECT cmp_heslo FROM firmy WHERE log_meno='$log_meno'";
$result = mysqli_query($Conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row=mysqli_fetch_assoc($result)) {
echo "$row[cmp_heslo]<br>$cmp_heslo";
}
} else {
echo "0 results";
}
if ($cmp_heslo == $row[cmp_heslo])
{
echo "logged";
}
else
{
echo "<br>bad password";
}
mysqli_close($Conn);
?>
我的问题是$ row [cmp_heslo]和$ cmp_heslo是一样的但是当我做行动登录时我得到了这个结果:
839512db1882dff3fcb596012982790870f6f06e 839512db1882dff3fcb596012982790870f6f06e 密码错误
为什么密码不好我认为应该记录密码。抱歉我的英文,谢谢你的回答
答案 0 :(得分:0)
你为什么不这样做:
$sql = "SELECT cmp_heslo
FROM firmy
WHERE log_meno='$log_meno' AND cmp_heslo = '$cmp_heslo' ";
if (mysqli_num_rows($result) > 0) {
echo "logged";
}
答案 1 :(得分:0)
感谢所有人,我看到了解决了我的问题的答案,但是当我重新加载页面时,我再也看不到答案了。但答案是将我的if else循环放入while循环中。非常感谢你。