`
ljl_xyf
  • 浏览: 629088 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[CI]登录验证

阅读更多

[list]

  • 预先加载数据库操作类和Session类 即在autoload.php中,$autoload['libraries'] = array('database', 'session');
a. 注: 使用session , 要设定 encryption key : config.php中:  $config['encryption_key'] = '!@#$%^&*()';
  • 登录表单页(view) : login_view.php
注: 由于该页面使用了CI的form标签, 所以需要在渲染该页面前加载form_helper, 即: 在config/autoload.php, 文件中加入: $autoload['helper'] = array('url', 'form');
	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html lang="utf-8">
		<head>
			<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
			<title>Login</title>
			<style>div{display: block;} .errors{color: red;}</style>
		</head>
		<body>
			<h1>Please Login</h1>
			<?php echo form_open('admin');?>
			<p>
				<?php 
					echo form_label('Email: ', 'email');
					echo form_input('email', set_value('email'), 'id="email" autofocus'); // set_value 如果密码输入有误, 返回时,默认写入值
				?>
			</p>
			<p>
				<?php 
					echo form_label('Password: ', 'password');
					echo form_input('password', '', 'id="password"');
				?>
			</p>
			<p>
				<?php echo form_submit('submit','Login');?>
			</p>
			<?php echo form_close();?>
			
			<div class="errors"><?php echo validation_errors();?></div>
		</body>

</html>
  • 控制器 : admin.php
	<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
	
	class Admin extends CI_Controller {
		
		function __construct(){
			parent::__construct();
		}
		
		public function index(){
			
			// 在welcome的action中添加如下代码,即可用户登录情况
			/**
			 * public function __costruct(){
			 * 		session_start();
			 * 		parent::_construct();
			 * 
			 * 		if(!$this->session->userdata('username')) redirect('admin');
			 * }
			 */
			if ($this->session->userdata('username')) {
	         	redirect('welcome');
	      	}
			
			$this->load->library('form_validation'); // 使用CI的表单验证, 如下:
			$this->form_validation->set_rules('email', 'Email', 'valid_email|required');
			$this->form_validation->set_rules('password', 'Password', 'min_length[4]|required');
			
			if($this->form_validation->run() !== false){
				// then validate password. Get from the Db.
				$this->load->model('admin_model');
				$res = $this->admin_model->verify_users(
												$this->input->post('email'),
												$this->input->post('password')
											);
				if($res !== false){
											print_r($res);
					$this->session->set_userdata('username', $this->input->post('email'));
					redirect('welcome'); 
				}
			}
			
			$this->load->view('login_view');
		}
		
		public function logout(){
			$this->session->sess_destroy();
			$this->load->view('login_view');
		}

}
  • 模型层admin_model.php
注: 由于使用了数据库, 在这里必须首先加载数据库连接: 即: 在config/autoload.php, 文件中加入: $autoload['libraries'] = array('database');
	<?php
	
	class Admin_model extends CI_Model{
	
		function verify_users($email, $password){
			$q = $this->db
				->where('email', $email)
				->where('password', sha1($password))
				->limit(1)->get('users');
				
			if($q->num_rows > 0){
				return $q->row();
			}
			return false;
		}
	}


[/list]
分享到:
评论

相关推荐

    ci表单验证

    ### CI 表单验证知识点详解 #### 一、CI框架简介 CodeIgniter(简称CI)是一款使用PHP语言编写的轻量级Web开发框架。它旨在简化PHP开发过程中的复杂性,提供了一系列实用的类库,如数据库访问、模板引擎等,并通过...

    ci框架验证类语言包

    "CI框架验证类语言包"是CI框架的一部分,主要用于处理用户输入数据的验证,提供多语言支持,以便在不同语言环境中进行错误提示。 在CI框架中,验证类是一个强大的工具,它允许开发人员设定规则来检查用户提交的数据...

    一个简单的Codeigniter用户登录验证例子程序

    在`Simple-CI-Authentication-master`压缩包中,可能包含以下文件和目录: 1. `application/`:Codeigniter的配置、控制器、模型、视图等的核心文件夹。 2. `application/controllers/Auth.php`:可能包含了`Auth`...

    ci案例ci案例ci案例ci案例

    在合并前,CI服务器会自动运行一系列检查,以验证代码的稳定性和一致性。 3. **自动化构建**:一旦有新的代码提交,CI服务器会自动拉取最新代码并尝试构建。如果构建失败,开发团队会立即收到通知,以便他们能够...

    iicaUVM.zip_i2c verification_iicaUVM_验证文档

    I2C硬件描述语言代码、验证环境以及说明文档,已通过验证

    CI离线文档

    CI能够帮助团队快速验证代码更改,确保代码质量,并减少集成时可能出现的问题。 2. **配置与设置**:详细介绍如何配置CI环境,包括安装必要的工具、创建配置文件、设置触发器等。这部分内容可能涵盖不同的CI服务器...

    产品级DC-DC代替7805方案(PCB 原理图开源)-基于AOZ1282CI代替7805方案验证板20180402.rar

    文件名表明它可能包含了一个基于AOZ1282CI的验证板的设计文件,如PCB布局图、原理图、物料清单(BOM)和其他相关文档,以便于用户理解和复制这一高效能的电源管理方案。 综上所述,这个压缩包提供的知识涵盖了: 1...

    一个i2c的验证平台实例作为uvm验证平台参考

    标题中的“一个i2c的验证平台实例作为uvm验证平台参考”表明这是一个关于使用UVM(Universal Verification Methodology)构建I2C(Inter-Integrated Circuit)接口的验证平台的实际案例。I2C是一种常见的串行通信...

    后盾网 CI框架 马震宇 模板

    4. **表单验证(Form Validation)**:CI提供了一套完整的表单验证规则,帮助开发者快速实现用户输入的验证,提高应用的安全性。 5. **助手函数(Helpers)**:助手函数是CI中的一组预定义函数,覆盖了常见的开发...

    CI_FreakAuth

    **CI_FreakAuth** 是一个基于 **CodeIgniter (CI)** 框架的项目,它集成了一款名为 **FreakAuth** 的身份验证库。CodeIgniter 是一个广泛使用的 PHP 框架,以其轻量级和高效性能著称,适合快速开发 Web 应用程序。...

    PHP框架 CI.chm

    CI包含大量预置的库,如表单验证、电子邮件、会话管理、加密、URL辅助函数等,这些库可以帮助开发者快速实现常见的功能。此外,开发者还可以自定义库、辅助函数或加载第三方插件来扩展框架的功能。 **安全与防护** ...

    CI框架简单bootstrap架构

    CI框架提供了强大的表单验证类,可以方便地对用户输入进行验证。结合Bootstrap的表单控件,创建带有验证的表单,并在控制器中处理表单提交。 8. **错误处理与日志记录** CI框架支持自定义错误报告级别和错误显示...

    CI的作业流程计划(CI系列)

    持续集成(Continuous Integration,简称CI)是软件开发过程中的一个重要实践,它强调开发人员频繁地将代码更改合并到共享主分支,通常每天至少一次。这个过程伴随着自动化构建和测试,以便尽早发现并修复问题,提高...

    PHP CI demo

    CI以其简洁的代码结构、丰富的库支持以及强大的性能而备受开发者喜爱。 ### 1. CodeIgniter 框架介绍 CI是基于MVC(Model-View-Controller)设计模式的,它将业务逻辑、数据和用户界面分离开来,使得代码更易于...

    ci框架详解

    提供的"ci框架 2.0中文手册.chm"是CI框架2.0版本的官方中文文档,涵盖了框架的所有组件和功能,包括安装、配置、数据库操作、视图和模板、表单验证、错误处理等,是学习和使用CI框架的重要参考资料。 总结,CI框架...

    CI规范管理制度(CI系列)

    CI,即持续集成(Continuous Integration),是软件开发过程中的一个重要实践,旨在频繁地将开发人员的代码更改集成到主分支,以尽早发现并解决合并冲突和潜在问题。CI规范管理制度是为了确保团队高效、稳定地执行...

    CI(CodeIgniter)离线手册

    9. **表单验证**:CI的表单验证类可以帮助开发者轻松实现数据验证,防止用户提交非法或无效的表单数据。 10. **命令行工具**:CodeIgniter CLI(命令行接口)工具允许开发者在终端执行各种任务,如自动化测试、...

    ci rbac权限控制示例

    - **中间件/钩子**:可以使用CI的钩子或者自定义中间件来统一处理权限验证。 4. **代码结构解析** 压缩包中的`rbac-codeigniter-master`可能包含以下关键文件和目录: - `application/models`: 包含用户、角色和...

    ABB ci801_gsd

    1. **产品标识**:包括制造商名称(ABB)、设备型号(CI801)以及版本号(v112),这有助于识别和验证设备的准确性和更新状态。 2. **通信规范**:文件会列出CI801支持的通信协议,如Profibus、Modbus TCP/IP或其他...

    CI框架学习笔记源码

    CI提供内置的表单验证类,用于验证用户输入的数据,保证数据的安全性。在控制器中调用验证规则,防止非法数据进入系统。 7. **视图模板** 视图文件通常位于`views`目录下,负责展示数据。CI支持加载多个视图和...

Global site tag (gtag.js) - Google Analytics