A-A+

使用CodeIgniter创建一个简单的注册系统

2013年04月09日 PHP 暂无评论 阅读 3,897 次

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) && !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。以此作为基础,根据需要,该系统扩展。

给我留言