mysql记录和帖子记录相同但不相等

时间:2016-05-07 14:45:44

标签: php mysqli record

我已经搜索了很多,但任何事都不适合我。

我在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 密码错误

为什么密码不好我认为应该记录密码。抱歉我的英文,谢谢你的回答

2 个答案:

答案 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循环中。非常感谢你。