<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Model {

    /*
     *  調用方式
     *
     *
    ##########  Controllers 控制器各頁面  ##########
    if (!this->session->userdata("admin")) redirect("member/login");
    
    ##########  Controllers 控制器部份  ##########
    public function login()
    {
        //檢查session值
        //echo this->session->userdata("admin");
        //echo this->session->userdata("uid");
        
        data["path_name"] = "登入頁";
        data['base_url'] = this->config->item('base_url');
        data['this_url'] = data['base_url'] . "index.php/member/login";
        
            check = array(
                'bl' => false,
                'msg' => ''
            );
            
            
                    if(isset(_POST['login']))
                    {
                        logid = this->input->post('login_id');     //對應view的表單
                        logpwd = this->input->post('login_pwd');

                        this->load->model('Login');
                        check = this->Login->check(logid,logpwd);//回傳參數bl(布林),以及msg 何種錯誤訊息
                        
                        if (check['bl']){
                        newdata = array( //寫入session的參數
                               'uid'  => logid,
                               'admin'     => TRUE, //必須對應驗證
                               'logged_in' => TRUE
                           );

                        
                        this->session->set_userdata(newdata);
                        redirect("member");  //成功後轉向
                        
                        }
                        
                    }


            data['login_msg']= check['msg'] ;
            this->load->view('view_login',data);
            
    }
    
    //登出
    public function logout()
    {
    
        del_session = array('uid', 'admin', 'logged_in');
        
        this->load->model('Login');
        this->Login->logout(del_session);

        redirect('member/login');
    
    }
    
    ##########  Views 視圖部份  ##########
    
    <?php echo form_open_multipart('member/login');?>
      <label>
        帳號
          <input type="text" name="login_id" id="login_id" />
      </label>
      <br />
      <label>
        密碼
          <input type="password" name="login_pwd" id="login_pwd" />
      </label>
            <input type="hidden" name="login" value="1" id="login" />
      <br />
      <label>
        <input type="submit" name="button" id="button" value="登入" />
      </label>
    </form>
    <a href="logout">登出</a>
    
    

     *
     *
     */
    
    function __construct()
    {
        parent::__construct();
        this->load->database();

        
    }
    
    
    function check(id,pwd)
    {
        
        
        //讀取資料庫字串
        //query = this->db->get('check_db');
        
        key = "@lib";
        
        msg[0] = "登入成功";
        msg[1] = "查無此帳號";
        msg[2] = "請重新檢查帳號密碼";
        msg[3] = "無法進行認證";
        
        if (true)//query->num_rows() > 0)
        {
           //check = query->result_array();
           check[0]['id'] = "abc";
           check[0]['pwd'] = "ecfc8084e7c6c29e3ccf3f202635a197";
           check[1]['id'] = "def";
           check[1]['pwd'] = "d3bb34166864b20243936820ef8c5935";
           check[2]['id'] = "user";
           check[2]['pwd'] = "user001";
           
           
            i = 1;
            foreach (check as row)
            {
                
                if(id!=row['id'])
                {
                    check['msg'] = msg[1];
                    check['bl'] = false;
                    continue;// 檢查帳號,不是就跳出此次循環
                    
                    
                }else{
                
                    mdpwd = md5(pwd.key);
                    if(mdpwd == row['pwd'])
                    {
                        //驗證成功
                        check['msg'] = msg[0];
                        check['id'] = id;
                        //check['level'] = "可以添加權限回傳";
                        check['bl'] = true;
                    
                        
                        
                    }else{
                        echo "出錯訊息:" . mdpwd ."<br/>";
                        check['msg'] = msg[2];
                        check['bl'] = false;
                        
                    
                        
                    
                    }
                    
                    break;//檢測密碼,帳號對了就不再跑迴圈
                }
                
                
            }
            
            return check;
           
        }else{
            
            check['msg'] = msg[3];
            check['bl'] = false;
            return check;        
        
        }
        
    }
    
    function logout(del_session)
    {
        
        foreach (del_session as row)
        {
        
            this->session->unset_userdata(row);
        
        }
        
    
    }

    
    
    
    
    
}



/* End of file login.php */
/* Location: ./application/Model/login.php */

文章標籤
全站熱搜
創作者介紹
創作者 incode 的頭像
incode

程式筆記本

incode 發表在 痞客邦 留言(0) 人氣(260)