PROGRAMMINGCodeIgniterでMySQL操作の基礎とパスワード暗号化の基礎をまとめました。MySQL操作の入門として、以下の記事をご覧いただくと理解が深まりやすいです。記事のもくじCodeIgniterの初期セットアップCodeIgniterでDBに情報を挿入するCodeIgniterでDBから情報を取得するCodeIgniterでDB情報を編集(アップデート)するCodeIgniterでDB内のパスワードを暗号化(ハッシュ)するパスワードを暗号化しつつDBに保存する機能を実装するそれではまとめていきます。CodeIgniterの初期セットアップデータベースを作成するテーブル名:usersカラム数:4CodeIgniterをDBに繋ぐ以下の記事を参考にDBとCodeIgniterを接続してください。一点だけ注意点があります。今回は『mysql』ではなく、『’mysqli』を利用します。よって、DB情報は以下のように記述してください。'mysqli';ちなみに、mysqliとは、mysqlがアップグレードしたものです。詳しく知りたい人はこちらをどうぞ。$data);}ユーザー情報をDBに送信するメソッドを利用してみるトップページにアクセスした際に、メソッドを実行します。index(){$this->load->model("model_users");$this->model_users->insert_into_user();}データベースに以下の情報が格納されていることがわかります。username:takashipassword:testing_password※このままだとページをリロードするたびに、DBに上記情報が格納されていきます。ここでエラーがおきた場合は、databaseがオートロードされているか確認してください。$query;}ユーザー情報をを取得するメソッドを作成する編集ファイル:application/controllers/main.php外部からのアクセスを遮断するために、privateファンクションを利用します。$data);}次にmain_viewを作っていきます。$query->result();}※result()とはデータベース内から引っ張れる情報のみを表示するメソッド。$row->password;}?>以下のような画面が表示されます。$data);}しかし、このままだと、以下のエラーメッセージが表示されます。core/Common.php上記エラー解決のために、user_updateモデルを変更します。$data);//どこのテーブルのデータをアップデートするのか明確化する}update()クラスの詳細はドキュメントをご確認ください。日本語版この時点で実行すると、以下のエラーが表示されます。controllers/main.php上記エラーを解決していきます。"Yes";?>Yesと表示されればOKです。index(){$this->load->library("encrypt");}必要のないコードはコメントアウトしておきます。画面をロードしてエラーが表示されなければOK。※ロードしているだけなので、とくに画面に変化はおきません。$data);}次に、上記で利用している、$enc_passwordを作成していきます。$enc_password;}encrypt_passwordのモデルが完成しました。encrypt_passwordモデルを使って、insert_into_userモデルを書き換えていきます。いう情報が保存されます。index(){$this->load->model("model_users");$this->load->library("encrypt");$this->model_users->insert_into_user();$this->load->view("main_view");コントローラーが完成したので、ビューをすこし書き換える編集ファイル:application/views/main_view.php以前に書いたプログラムは必要ないので、以下のように書き換えます。"暗号化されたパスワードのDB挿入が完了しました";この時点でトップページをリロードしてみます。すると、暗号化されたパスワードがDBに保存されていることがわかります。ユーザー情報を表示してみる編集ファイル:application/models/model_users.phpget_userモデルを以下のように変更します。$data);}取得した情報をvar_dumpで表示してみる編集ファイル:application/views/main_view.phpvar_dump($user_data);ここで画面更新をすると、以下のように表示されます。}なぜでしょうか?get_userモデルでは、ThisisaTestPasswrodをパスワードとするユーザー情報の取得を定義しました。"ThisisaTestPasswrod");しかし、現状のDBに保存されているパスワードはすでに暗号化されています。元のパスワードではユーザー情報を検索することができないことがわかります。次に、暗号化されたパスワードとユーザー情報を照合できるプログラムを作っていきます。$query->result();}ここで画面をリロードすると、以下の情報を取得することができます。:16記事で解説】SEOプログラミング・ブログの学習の有料ロードマップ【公開】プログラミング独立の完全ロードマップ【月20万を稼ぐ道】PROGRAMMINGブログ型アフィリエイトの完全講義【ブログ歴6年の僕の集大成です】BLOGお仕事の依頼はこちらからどうぞWebマーケティングコンサルティングの依頼ページSEO25万円:ビジネススタートにおけるWeb制作・運用設計をサポートしますPROGRAMMINGマナブブログ・アフィリエイト・プログラミングを愛しています。ブログを書きまくる→ブログ収益7桁達成。普段はバンコクを中心に南国にひきこもりつつ、生活費は5万円くらいで生きています。me!ブログ・アフィリエイト・プログラミングを愛しています。ブログを書きまくる→ブログ収益7桁達成。普段はバンコクを中心に南国にひきこもりつつ、生活費は5万円くらいで生きています。