本文章来给大家介绍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) {
让我们回顾一下上面的代码片断,我们首先验证表单验证,使用方法$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']);
我已经重定向数据到仪表板,在这里我们要告诉用户相关信息,只有合法的用户被允许进入,其余全部被重定向到登录页面.
创建一个注销过程
最后,我们需要一个用户注销的方式,通过调用内置的会议库sess_destroy()方法,我们可以摧毁当前会话.
结论:就是这样,使用上面的方法,你可以设置一个登录和注册系统使用CodeIgniter,以此作为基础,根据需要进行系统扩展. |