2

joomla のカスタム登録/認証モジュールを作成していますが、デフォルトの joomla メソッドを使用してユーザー パスワードを変更するにはどうすればよいでしょうか? 現時点で私は持っています:

private function UpdateUser(){
    $user = JFactory::getUser($this->user_data['username']);
    $user->set('password', $this->user_data['password']);
    $user->set('password2', $this->user_data['password']);
    // $user->bind();
    $user->save();
}

ただし、パスワードは更新されません。

PS $this->user_dataにはユーザーに関する他のスタッフが含まれていますが、パスワードのみを更新する必要があります。

4

1 に答える 1

2

解決しました。

private function UpdateUser($username, $password){

    $user = JFactory::getUser($this->GetIdByUserName($username));
    $password = array('password' => $password, 'password2' => $password);
    if(!$user->bind($password)){
        die('Could not bind data. Error: '.$user->getError());
    }
    if(!$user->save()){
        die('Could not save user. Error: '.$user->getError());
    }
}


private function GetIdByUserName($username){
    $query = $this->db->getQuery(true);

    $query->select('id');
    $query->from('#__users');
    $query->where('username=' . $this->db->Quote($username));

    $this->db->setQuery($query);
    if(isset($this->db->loadObject()->id) && !empty($this->db->loadObject()->id))
        return $this->db->loadObject()->id;
    else
        die('No id');
}
于 2012-10-22T15:55:41.930 に答える