使用MD5更改密码表单?

时间:2011-08-17 07:55:10

标签: php passwords

我有用于更改用户密码的php代码。但是在我尝试了代码之后......当提交新密码时......新密码在sql数据库中显示出来......我希望它是md5代码密码。你可以用我的代码解决问题吗

if($_REQUEST['do'] == 'edit')
{
        $title = 'change password';
        $page  = $_POST['page'];
        $userId = safe($_POST['userId']);
        $passwd = safe($_POST['password']);
        $email  = safe($_POST['Email']);
        $passw2 = $_POST['password2'];

        if(md5($passwd) == $_SESSION['user']['password'])
        {
            if(empty($passw2))
            {
                $pass = $_SESSION['user']['password'];
            }
            else
            {
                $pass = $passw2;
            }
            $query = $db->query("UPDATE users SET email = '".$email."' , password = '".$pass."' WHERE Id = '".$userId."' ");
            if($query)
            {
                $msg = "password changed successfully";
            }

2 个答案:

答案 0 :(得分:2)

替换

$pass = $passw2;

$pass = hash('md5', $passw2);

答案 1 :(得分:2)

$ _SESSION ['user'] ['password']被(被禁止)编码为MD5,但从用户表单获取的passw2是普通的。

你需要改变

$pass = $passw2; 

通过

$pass = md5($passw2);

在将密码提交到数据库之前将密码作为md5进行enconde。 并且还使用新密码更改$ _SESSION ['user'] ['password'],或者用户只能在同一会话中更改一次密码。