本文章來給大家介紹CodeIgniter創建一個簡單的注冊系統,CodeIgniter 是一個簡單快速的PHP MVC 框架,CodeIgniter 不需要大量代碼,也不會要求您插入類似于 PEAR 的龐大的庫,它在 PHP 4 和 PHP 5 中表現同樣良好,允許您創建可移植的應用程序,最后,您不必使用模板引擎來創建視圖 — 只需沿用舊式的 HTML 和 PHP 即可.
CodeIgniter 是一套給 PHP 網站開發者使用的應用程序開發框架和工具包,它提供一套豐富的標準庫以及簡單的接口和邏輯結構,其目的是使開發人員更快速地進行項目開發,使用 CodeIgniter 可以減少代碼的編寫量,并將你的精力投入到項目的創造性開發上.
CodeIgniter是由Ellislab公司的CEO RickEllis開發的,其核心框架是為這個程序特別編寫的,而其他很多類庫、輔助函數和子系統則來自于RickEllis和PaulBurdick編寫的內容管理系統ExpressionEngine,來自RubyonRails的靈感啟發我們創造了一個PHP框架,并且將框架的概念引入到網絡社區的一般意識中.
在這篇文章中,我將介紹如何使用CodeIgniter框架、開發一個登錄認證和注冊系統,創建一個數據庫來存儲用戶信息,下表將存儲在MySQL用戶相關的所有信息,它僅獲得一些基本的信息,你可以隨意延長,代碼如下:
- CREATE TABLE IF NOT EXISTS `ci_users` ( `id_users` bigint(20) NOT NULL AUTO_INCREMENT, `user_login` varchar(255) NOT NULL, `user_pass` varchar(32) NOT NULL, `user_email` varchar(255) NOT NULL, `first_name` varchar(100) NOT NULL, `last_name` varchar(100) NOT NULL, PRIMARY KEY (`id_users`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
創建用戶登錄表格
由于這將是簡單的HTML,我不會在這里寫的代碼,確保,表單動作應指向用戶/注冊路線,這樣的請求到達用戶的控制器,然后執行功能“注冊”.
創建表格后,我們需要寫“模型”邏輯,這樣我們就可以存儲到數據庫中的用戶注冊信息,我要去到創建方法create_user里面的“用戶”模式,create_user方法將下面的代碼:
- function create_user(){ $first_name = $this->input->post('first_name'); $last_name = $this->input->post('last_name'); $username = $this->input->post('user_login'); $eml = $this->input->post('email_address'); $clear_pass = $this->input->post('password'); $member_data = array( 'user_login' => $username, 'user_pass' => md5($clear_pass), 'user_email' => $eml, 'first_name' => $first_name, 'last_name' => $last_name ); $insert = $this->db->insert('ci_users', $member_data); return $insert; }
現在我們有了模型和視圖準備,我們需要寫這兩個控制器邏輯連接,使我們能夠成功地渲染登記表和存儲數據,我們也打算把驗證邏輯,使用CodeIgniter的內置的驗證庫,里面的控制器本身.
我假設您知道如何創建在CI的控制器,所以我將討論控制方法,其中最重要的部分.
首先,討論,讓我們使用下面這行代碼加載表單驗證庫,位于里面的application / config / autoload.php autoload.php通過指定其名稱,可以自動加載這個庫,代碼如下 :
$this->load->library('form_validation');
現在來驗證,可以使用下面這行代碼:
$this->form_validation->set_rules('first_name', 'Name', 'trim|required');
哪里的FIRST_NAME是HTML元素的名稱,名稱是人類可讀元素名稱,修剪|所需元素的驗證規則.
您可以指定其他各種規則,你可以使用回調方法定義自定義驗證規則,如需更多信息,驗證,檢查文檔,要檢查如果驗證成功,我們使用下面的代碼塊:
- if($this->form_validation->run() == FALSE) { //not validated - reload the view and display errors $this->load->view('signup'); } else { $this->load->database();//load users_mode defined in modes/uses_model.php $this->load->model('users_model'); //create user $this->users_model->create_user(); }
讓我們回顧一下上面的代碼片斷,我們首先驗證表單驗證,使用方法$this->form_validation->run(),如果返回true,那么我們是很好的,否則,我們在視圖中顯示錯誤,如果一切都正確輸入,我們應該創建新的用戶,請注意,我手動創建數據庫連接.
如果您的應用程序會更經常地使用數據庫,那么你就可以加載庫通過指定到autoload.php文件,最后,我們的模型加載并調用我們上面所討論的create_user.
這應該是你需要做的所有注冊一個新用戶在您的Web應用程序.
創建一個登錄過程
下一步,我們應該提供一種方法,在這些注冊用戶登錄的過程是相同的,我們創建視圖,然后模型和控制器內部終于做加工.
消毒后的用戶輸入(如上述),在模型中,我們可以查詢數據庫,用下面的方法:
- function validate_user() { $this->db->select('*'); $this->db->limit(1); $this->db->where('user_email',$user_login); $this->db->where('user_pass', md5($password)); $this->db->from('ci_users'); if($query->num_rows == 1) { $data = $query->row_array(); if($data['user_login'] == $user_login) return $data; else return false; } }
上面的方法是簡單易懂,我已經查詢拆分,使其更清晰,如果行數是1,那么我們驗證用戶,否則我們不知道,我們返回完整的用戶信息的控制器,我們要建立的會話信息,讓我們來看看:
- if(is_array($user) && !emptyempty($user)) { $user_data = array('is_logged_in' => 1,'user_email' => $user['user_email']); //set the session information $this->session->set_userdata($user_data); //write code here to show the success message redirect(site_url('dashboard')); exit(); }
我已經重定向數據到儀表板,在這里我們要告訴用戶相關信息,只有合法的用戶被允許進入,其余全部被重定向到登錄頁面.
創建一個注銷過程
最后,我們需要一個用戶注銷的方式,通過調用內置的會議庫sess_destroy()方法,我們可以摧毀當前會話.
結論:就是這樣,使用上面的方法,你可以設置一個登錄和注冊系統使用CodeIgniter,以此作為基礎,根據需要進行系統擴展.
新聞熱點
疑難解答