изменить пароль с помощью MD5? - PullRequest
0 голосов
/ 17 августа 2011

У меня есть 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 ]

2 голосов
/ 17 августа 2011

$ _SESSION ['user'] ['password'] (предполагается) кодируется как MD5, но пароль passw2, извлеченный из формы пользователя, прост.

вам нужно изменить

$pass = $passw2; 

по

$pass = md5($passw2);

для подтверждения пароля md5 перед отправкой в ​​базу данных. А также измените $ _SESSION ['user'] ['password'] с новым паролем, или пользователь может изменить только один раз пароль в том же сеансе.

2 голосов
/ 17 августа 2011

Заменить

$pass = $passw2;

с

$pass = hash('md5', $passw2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...