PHP-CI - Login & redirect

摘要:PHP-CI - Login & redirect

PHP CI ,redirect 應該很容易查到相關資訊,

只是我常常會忘了語法,

所以還是在這裡記一下,

 

我要實作一個登入頁面,

參考了一下下面連結的作法,有一個登入過程的流程圖可以參考,

http://www.formget.com/form-login-codeigniter/

 

總之會發現Login頁是一個method,處理Login 又是另一個method。

若發生錯誤時,login的view跟 錯誤的 login view是一樣的,但不同的是帶入的參數

會判斷isset($error_message)是否存在,整在則處理錯誤訊息,

 

如果登入成功,是呼叫另一個view,但我還是不太習慣呼叫view的方式,所以我使用的是redirect,畢竟以前接觸網頁時寫的是asp、asp.net,突然只習慣用redirect

 

但使用redirect需要先載入

url 的 helper

 

而使用資料庫的部分。

需撰寫model

$this->model_name->login(account,password)

 

而model裡面,就是一般的

$sql = "select sql";

$query = $this->db->query($sql);

再判斷

$query->num_rows() 是否大於零,就知道是否有登入成功。

 

在來就是Session了,

登入之後,要記入Session

http://codeigniter.org.tw/user_guide/libraries/sessions.html

 

library要載入

$this->load->library('session');

 

設定Session

$this->session->set_userdata($array);

 

取得Session

$this->session->all_userdata()

$this->session->userdata('item');

 

及刪除Session

$this->session->unset_userdata($array_items);

 

但實際跑了之後,會發生

not using encrypted sessions

就需要加入

http://codeigniter.org.tw/user_guide/libraries/encryption.html

 

$config['encryption_key'] = "YOUR KEY";

而這個key呢。

又需要請你自動產生一組,

可以使用網路工具

http://jeffreybarke.net/tools/codeigniter-encryption-key-generator/

 

大致登入功能是這個樣子。