iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0
Modern Web

後端的鉗形攻勢系列 第 24

[Day. 23] Codeigniter 註冊/登入實作(4)

  • 分享至 

  • xImage
  •  

昨天,我們結束在利用MVC框架將資料新增進資料庫。

能將資料新增進資料庫也就表示註冊的功能已經完成囉!
(當然,關於註冊還有很多眉角等著我們去細細補足)

我們接著做登入的部分。

首先,我們到controller/User.php底下,將login()函式實作:
在打code前整理一下思緒,我們應該在這個login()裡面做些甚麼?

  1. 獲取view傳來的帳號密碼
  2. 將帳號傳進資料庫做比對查詢,並將符合的帳號正確的密碼傳回
  3. 拿到資料庫中帳號相符的密碼後和view傳進來的密碼比對

了解了我們應該要實作哪些功能後,再來開始撰寫程式碼

public function login()
    {	
    	
    	$check_data = $this->user_model->login($this->input->post('username'));
    	if($check_data == ""){
    		echo "Unregister user.";
    	}
    	else{
    		if($check_data->password == $this->input->post('password')){
    			echo "Login Success!";
    		}
    		else{
    			echo "Password Error!";
    		}
    	}
    }

利用$this->input->post來獲取帳號密碼,然後傳進user_model.php中的login()
當從資料庫撈回資料後,做密碼的驗證(其實就是簡單的if-else)。

接著,到user_model()中新增函式login($username)

public function login($username)
        {
                $user_info =   $this->db->where('username',$username)
                                        ->get('user')
                                        ->row();

                return $user_info;
        }

查詢資料庫的語法可以參考官方使用手冊,再依據需求做更動~
這裡的where('username',$username)就是SQL中的WHERE username = $username
row()則回傳單筆陣列資料,如果超過一筆則只會回傳第一筆。

其實需要撰寫的程式碼都不多嘛,那就趕快來試試看能不能成功吧。

首先,一樣打開http://localhost/ci/index.php/ 並進入登入畫面。
https://ithelp.ithome.com.tw/upload/images/20201008/20126335YgpopYhmJT.png

昨天有新增一筆username = test, password = test的資料進資料庫,就用它來測試看看囉

按下送出。
https://ithelp.ithome.com.tw/upload/images/20201008/2012633524It3tVeAU.png
看到成功的訊息了!!

接著試試看沒有註冊過的帳密,隨便輸入
https://ithelp.ithome.com.tw/upload/images/20201008/20126335kjbLDwZyXj.png
按下送出。
https://ithelp.ithome.com.tw/upload/images/20201008/20126335nib7pB3jye.png
看到了Unregister User.

那麼換試試看錯誤的密碼。
把剛剛的test帳號,密碼改為隨便輸入
https://ithelp.ithome.com.tw/upload/images/20201008/20126335d9aNWy68gS.png
按下送出。
https://ithelp.ithome.com.tw/upload/images/20201008/20126335bNFkNr2ONr.png
便可以看到Password Error!的訊息。

如此,我們簡簡單單就做出了註冊登入的頁面囉:)
是不是比想像中的簡單呢


上一篇
[Day. 22] Codeigniter 註冊/登入實作(3)
下一篇
[Day. 24] Codeigniter 登入了,之後呢?
系列文
後端的鉗形攻勢31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言