2011-12-06 8 views
2

Wordpressで新しいパスワードを更新する前にデータベースから古いパスワードを確認する方法を教えてください。 POST変数は、パスワード・ページの更新フォームから次のデータを取得します。Wordpressで新しいパスワードを更新する前にdbから古いパスワードを確認する方法

Array 
(
    [old_password] => oldpass 
    [new_password] => newpass 
    [confirm_password] => newpass 
) 

このパスワード更新の問題を処理するデフォルトの機能はありますか?パスワードを暗号化するための暗号化方法は何ですか?

私はまだWordPressには新しく、この要件をグーグルで調べても解決策が見つかりませんでした。私を解決に導いてください。

答えて

2

私は同様の問題を抱えていましたが、私はそれを解決しました。ここでは解決できることはありますが、それはうまく動作し、自分のプロジェクトにすでに使用しています。もしあなたがそれについていれば教えてください。

if($_POST['submitpassword']) 
{ 
    $passdata = $_POST; 
    unset($_POST,$passdata['submitpassword']); 

    $user = wp_get_current_user(); //trace($user); 
    $x = wp_check_password($passdata['old_password'], $user->user_pass, $user->data->ID); 

    if($x) 
    { 
     if(!empty($passdata['new_password']) && !empty($passdata['confirm_password'])) 
     { 
      if($passdata['new_password'] == $passdata['confirm_password']) 
      { 
       $udata['ID'] = $user->data->ID; 
       $udata['user_pass'] = $passdata['new_password']; 
       $uid = wp_update_user($udata); 
       if($uid) 
       { 
        $passupdatemsg = "The password has been updated successfully"; 
        $passupdatetype = 'successed'; 
        unset($passdata); 
       } else { 
        $passupdatemsg = "Sorry! Failed to update your account details."; 
        $passupdatetype = 'errored'; 
       } 
      } 
      else 
      { 
       $passupdatemsg = "Confirm password doesn't match with new password"; 
       $passupdatetype = 'errored'; 
      } 
     } 
     else 
     { 
      $passupdatemsg = "Please enter new password and confirm password"; 
      $passupdatetype = 'errored'; 
     } 
    } 
    else 
    { 
     $passupdatemsg = "Old Password doesn't match the existing password"; 
     $passupdatetype = 'errored'; 
    } 
} 
+2

ポイント答え –

+0

こんにちは、[ 'new_passwordを']より良いが$ passdataように二つのパスワードを比較するということではありません=== $ passdataに素早くてくれてありがとう['パスワードを認証する'] ? – stviper

0

テストと作業コード

global $current_user; 
get_currentuserinfo(); 
$username = $current_user->user_nicename; 

$username = $username; 
$oldpass = $_POST['cpassword']; 
$user = get_user_by('login', $username); 

if ($user && wp_check_password($oldpass, $user->data->user_pass, $user->ID)) 
echo "That's it"; 
else 
echo "Nope"; 
関連する問題