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

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

时间: 2024-11-09 00:02:28

CodeIgniter创建一个简单的注册系统的相关文章

使用 CodeIgniter 创建一个简单的 Web 站点

原文:使用 CodeIgniter 创建一个简单的 Web 站点   参考源自: http://www.ibm.com/developerworks/cn/web/wa-codeigniter/index.html 我的第一个 CodeIgniter 项目(除HelloWorld外),现整理记录下来.   相关环境: 系统:ubuntu-10.04.3 Apache:httpd-2.4.7 PHP:php-5.4.22 MySQL:mysql-5.6.16 CI:CodeIgniter-2.2.

使用宿主机创建一个简单的Linux系统

一:原理 每个主机都需要硬盘,操作系统存在于硬盘上,操作系统主要包括内核.库文件以及应用.在宿主机上新增添一块硬盘,将内核.库文件以及应用都放到新增添的硬盘上,最后将该硬盘信息导入新建主机上 二:配置步骤 首先将宿主机上新添一块硬盘,将该硬盘 1:[root@lyt ~]# fdisk –l         #查看磁盘分区 2:[root@lyt ~]# fdisk /dev/sdb      #将新添加的硬盘进行分区 3:[root@lyt ~]# cat /proc/partitions  

怎么用Java编写一个简单的登录系统?可以注册账号的那种

问题描述 怎么用Java编写一个简单的登录系统?可以注册账号的那种 数据库用的是MySQL,但Java操作方面的不知道怎么入手,求大神指点啊,有实例参考就更好了,谢谢 解决方案 import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.awt.Container; import java.util.*; import java.sql.*; class Login extends JFrame im

使用MongoDB和JSP实现一个简单的购物车系统实例_JSP编程

本文介绍了JSP编程技术实现一个简单的购物车程序,具体如下: 1 问题描述 利用JSP编程技术实现一个简单的购物车程序,具体要求如下. (1)用JSP编写一个登录页面,登录信息中有用户名和密码,分别用两个按钮来提交和重置登录信息. (2)编写一个JSP程序来获取用户提交的登录信息并查询数据库,如果用户名为本小组成员的名字且密码为对应的学号时,采用JSP内置对象的方法跳转到订购页面(显示店中商品的种类和单价等目录信息):否则采用JSP动作提示用户重新登录(注:此页面上要包含前面的登录界面). (3

初学java,自己用java写了一个简单的注册登录程序,没报错但有问题,希望能帮忙指点。

问题描述 初学java,自己用java写了一个简单的注册登录程序,没报错但有问题,希望能帮忙指点. import java.util.Scanner; class Yanzheng{ private String n; private String p; public void setNa(String na){ this.n = na; } public void setPa(String pa){ this.p = pa; } public String getNa(){ return n;

用EclipseME0.5.5创建一个简单的J2ME程序

程序|创建 用EclipseME0.5.5创建一个简单的J2ME程序 上一篇文章<如何在Eclipse3.0.1上安装EclipseME 0.5.5版本>,我们已经讲了如何在Eclipse3.0.1上安装Eclipse程序. 今天我们就要用他来创建我们的第一个程序.绝大多数程序教程的第一个程序,都叫做HelloWorld.那么我们就来编一个HelloWorld程序. 1, 文件2, 新建项目3, 选择J2ME,J2ME Midlet Suite4, 输入项目名称:MyFirstJ2ME5, 选

构建一个简单的CaaS系统_docker

在CaaS系统出现前企业应用架构基本被IaaS/SaaS/PaaS等模式垄断,直到Docker的出现为我们打开了另一个扇大门,废话不说了,我们直奔主题. 我们先了解下一个简单的CaaS系统是如何为用户提供服务的: 企业用户上传它的应用代码或其他代码托管方式,我们生成用户应用的镜像,或者用户直接上传镜像,或者用户直接使用我们提供的基础服务镜像 用户部署他的镜像应用,启动它的镜像容器 用户访问他的应用服务 OK,需求确定了,该搬砖了. 用户镜像制作 既然是一个简单的CaaS系统,我们就不让用户上传代

WCF后续之旅(13): 创建一个简单的WCF SOAP Message拦截、转发工具[上篇]

WCF是.NET平台下实现SOA的一种手段,SOA的一个重要的特征就基于Message的通信方式.从Messaging的角度讲,WCF可以看成是对Message进行发送.传递.接收.基础的工具.对于一个消息交换的过程,很多人只会关注message的最初的发送端和最终的接收端.实际上在很多情况下,在两者之间还存在很多的中间结点(Intermediary),这些中间结点在可能在实际的应用中发挥中重要的作用.比如,我们可以创建路由器(Router)进行消息的转发,甚至是Load Balance:可以创

《精通 ASP.NET MVC 5》----2.4 创建一个简单的数据录入应用程序

2.4 创建一个简单的数据录入应用程序 本章的其余部分将通过建立一个简单的数据录入应用程序来考查MVC的更多基本特性.本小节打算分步进行,目的是演示MVC的运用,因此会跳过对幕后工作原理的一些解释.但不必担心,在后面的章节中会重新深入地讨论这些论题. 2.4.1 设置场景 假设一个朋友决定举行一个"新年除夕晚会",于是她请笔者为其创建一个Web应用程序,以便让受邀人进行电子回复(RSVP).她的要求有以下4个关键特性. 一个显示此晚会信息的首页. 一个可以用来进行电子回复(RSVP)的