PHPバージョン 7.2.3
mysql バージョン 5.0.12
codeigniter3系
開発環境 xamppローカルホスト
Codeigniter3を用いて、会員登録ログイン機能を実装中です。
基本的な流れの
【新規会員登録】→ 【メール送信】→ 【仮登録】 → 【本会員登録】 → 【ログイン】 → 【会員ページ】
までは実装が完了しました。
ログイン後に、DBに登録されている名前を表示させて
ようこそ!〇〇さんと表示させたいのですが、なかなかうまくいきません。
処理の流れとして、ログインテンプレートから入力された値がlogin_validation()
を通り、入力された値が正しければセッションに値を格納して、メンバーズページにリダイレクト
するというシンプルなものです。
イメージとして、入力されたメールアドレスとDBに登録されているメールアドレス
を比較し正しければ、比較したメールアドレスが登録されているDBのフィールドの名前を取得し
それを表示させる事で実装できるかと思い、$this->db->where()を用いて
実装しようとしたり、in_array()で実装させたりしようとはしましたが
うまくいきませんでした。
DBのテーブル内の全件取得は出来ております。
何卒よろしくお願い致します。
PHP
1//モデル 2 3public function get_users_data($email = NULL) 4 { 5 $query = $this->db->get("users"); 6 //usersテーブルからすべての値を取得 7 return $query -> result(); 8 9 $query = $this->db->get_where('users', array('email' => $email)); 10 return $query->row_array(); 11 12 } 13
PHP
1//コントローラー 2 3 /*-------------------------------------------------- 4 | ログインバリデーション 5 ----------------------------------------------------*/ 6 public function login_validation() 7 { 8 $this->load->library("form_validation"); 9 10 $this->form_validation->set_rules("email","メール","required|trim|callback_validate_credentials"); 11 $this->form_validation->set_rules("password","パスワード","required|md5|trim"); 12 if($this->form_validation->run()) 13 { //バリデーションエラーがなければ 14 $data = array( 15 "email" => $this->input->post("email"), 16 "is_logged_in" => 1 17 ); 18 $this->session->set_userdata($data); 19 redirect("main/members"); 20 } else { 21 echo "ログインに失敗しました。"; 22 echo validation_errors(); 23 redirect("main/login.tpl"); 24 } 25 $session = $this->session->all_userdata(); 26 $this->smarty->assign('session',$session); 27 } 28 29 /*-------------------------------------------------- 30 | 会員ページ 31 ----------------------------------------------------*/ 32 33 public function members() 34 { 35 $this->load->model('Users_model'); 36 if($this->session->userdata("is_logged_in")) { 37 $this->get_users(); 38 $this->smarty->view("main/members.tpl"); 39 } else { 40 $this->smarty->view("main/restricted.tpl"); 41 } 42 } 43 44 /*-------------------------------------------------- 45 | 会員情報の呼び出し 46 ----------------------------------------------------*/ 47 48 public function get_users() 49 { //モデルの読み込み 50 $this->load->model('Users_model'); 51 52 //usersDBのデータを全件取得 53 $data['results'] = $this->Users_model->get_users_data(); 54 var_dump($data); 55 56 //入力フォームで受け取ったメールアドレスを取得 57 $getMail = $_SESSION['email']; 58 59 //DB内に保存されているusersテーブルから入力されたメールアドレスと一致するフィールドを検索 60 61 //一致するカラムの中の$nick_nameを取得し変数に格納 62 63 //$nick_nameを表示用にSmartyにアサイン 64 65 //$this->smarty->assign('nick_name',$nick_name); 66 $this->smarty->assign('user_data',$data); 67 } 68
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/29 06:18
2018/06/29 09:46 編集
2018/07/02 04:42