すべてのユーザーのパスワードがデータベースの随時に自動的に変更される

私はcodeigniterのPHPフレームワークを使用しています。私はすべてのユーザーのパスワードが自動的にデータベースの変更を自動的に取得するという問題から苦しんでいます。お手伝いをしてください。

これは私のリセットコードです

    function reset_now($key){
        //key of fourth segment is saved on cookie

$key = $this->uri->segment(4);



        //start validation
        $this->form_validation->set_rules('password','Password','xss_clean|required|alpha_numeric|min_length[6]|max_length[20]|matches[password_conf]|sha1');
        $this->form_validation->set_rules('password_conf','Password Confirmation','xss_clean|required|alpha_numeric|matches[password]|sha1');

        if($this->form_validation->run() == FALSE){


            $this->load->view('account/reset_password');


        }else{


            $this->db->set('password', $this->_salt.$this->input->post('password'));
                    $this->db->where('lostkey', $_POST['lostkey']);
            $this->db->update('users');
            $this->session->set_flashdata('message','Password changed, please login with new password');



                    redirect('account/login');
        //$this->load->view('account/reset_password_complete');
    }

}
2
パスワードリセット機能が更新されました。私はそれが問題を引き起こしていると思います。
追加された 著者 ktm,
コードがなければ、これは解決するのが難しい問題になるでしょう。とにかくアプリケーションのコードを見直して関連する部分を投稿することはできますか? CIのような有名なフレームワークには、このような重大なエラーがないと確信しています。
追加された 著者 Devin M,
コードは単独では実行されず、コード自体も書き込まれません。 CIはスカイネットではありません。あなたのコードのどこかで間違ったことをしているに違いありません。このレベルの情報では、この質問には答えられません。詳細と関連コードを追加してください
追加された 著者 Damien Pirsy,
あなたの質問を詳述してください、あなたはデータベース用のプラグインを使用していますか、または私たちがあなたを助けることができるようにあなたが持っているいくつかのコードリファレンス(コントローラ/ Modal、database.php configなど)使用しているデータベース、使用しているcodeigniterのバージョン。どの暗号化をパスワード用に使用するかを指定します。パスワードを暗号化するためのプラグインやカスタムコードがあります。おそらく多くの可能性があり、私はCodeigniterフレームワークにこのような欠陥/バグがないことを100%確信しています。
追加された 著者 Mike,

1 答え

あなたは、パスワードの更新SQLのどこに忘れているかもしれません。あなたのSQLを再確認してください。パスワードは自動的に変更されません。誰かがパスワードを変更しようとすると、それは手に入るかもしれません。


提供されたコードに従って更新

Your update where condition is, $this->db->where('lostkey', $_POST['lostkey']);

lostkey を使う代わりに、 where 句はユーザID(データベース内のユーザのプライマリキー)を使うべきです(私はそれが何を意味しているのか、複数の行同じ lostkey を使用して)。

したがって、 where 句は次のようなものでなければなりません

$this->db->where('id', $user_id).

4
追加された
あなたは正しいです、私は元の記事のコードを更新して修正するのを助けてください
追加された 著者 ktm,
ありがとう私はそれを受け入れたが、私は完全なサンプルコードを見たいと思う
追加された 著者 ktm,
あなたが問題を解決した場合、@ sagarmatha woudlあなたは答えを受け入れることを忘れないでください
追加された 著者 robert,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com