PHP:验证当前密码

时间:2016-02-02 12:14:14

标签: php

大家好,我正在我的项目中实施密码验证。

验证当前密码以更改新密码..

这是我的查询:

$res=mysql_query("SELECT * FROM users WHERE id=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);
$pass = $userRow['password'];

    if(isset($_POST['update'])){
        $id = $_SESSION['user'];
        $new_pass = md5(mysql_real_escape_string($_POST['new_pass']));
        if($_POST['old_pass'] != $pass){
            ?>
                <script>alert('Wrong Old Password');</script>
             <?php
        }else if(mysql_query("UPDATE users SET password='$new_pass' WHERE id=$id")){
             ?>
                <script>alert('Password Successfully Updated');</script>
             <?php
         }else{
             ?>
               <script>alert('Failed');</script>
             <?php
         }
    }

警报&#34;错误的旧密码&#34;即使我输入了正确的旧密码,也总是弹出。那么如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您是否将旧密码保存为md5? ..如果是这样,你不能用从md5加密的数据库中检索到的传递等于旧传递(尚未加密md5)

另请注意看这个主题,解释为什么不使用md5

Why not to use MD5

答案 1 :(得分:0)

您的旧密码以加密格式存储。试试这个:

f(md5($_POST['old_pass']) != $pass)