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通过指定其名称,可以自动加载这个库。
代码如下 | 复制代码 |
PHP $this->load->library('form_validation'); |
现在来验证,可以使用下面这行代码:
代码如下 | 复制代码 |
PHP $this->form_validation->set_rules('first_name', 'Name', 'trim|required'); |
哪里的FIRST_NAME是HTML元素的名称,名称是人类可读元素名称,修剪|所需元素的验证规则。
您可以指定其他各种规则,你可以使用回调方法定义自定义验证规则。如需更多信息,验证,检查文档。
要检查如果验证成功,我们使用下面的代码块:
PHP
代码如下 | 复制代码 |
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应用程序。
创建一个登录过程
下一步,我们应该提供一种方法,在这些注册用户登录。的过程是相同的。我们创建视图,然后模型和控制器内部终于做加工。
消毒后的用户输入(如上述),在模型中,我们可以查询数据库,用下面的方法:
PHP
代码如下 | 复制代码 |
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) && !empty($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。以此作为基础,根据需要,该系统扩展