摘要: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/
大致登入功能是這個樣子。