2011-08-17 8 views
0

私はユーザーパスワードを変更するためのPHPコードを持っています。しかし、私はコードを試した後...新しいパスワードを提出するとき..新しいパスワードは、SQLデータベースに明らかになった...私はそれがmd5のコードパスワードにしたい。あなたは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"; 
      } 
+0

タイトルにphpを入れましたが、タグとして追加しませんでしたか? – Will

答えて

2

がで

$pass = $passw2; 

を交換してください私のコードで問題を解決してくださいすることができ

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

$ _SESSION [ 'ユーザー'] [ 'パスワード'](suppousedされる)されますMD5としてエンコードされていますが、ユーザフォームから取得されたpassw2はプレーンです。

あなたは前にそれをデータベースに送信するパスワードをMD5などencondeする

$pass = md5($passw2); 

によって

$pass = $passw2; 

を変更する必要があります。 また、$ _SESSION ['user'] ['password']を新しいパスワードで変更するか、同じセッションでパスワードを1回だけ変更できます。

関連する問題