`
ljl_xyf
  • 浏览: 634403 次
  • 性别: 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`...

    iicaUVM.zip_i2c verification_iicaUVM_验证文档

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

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

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

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

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

    CI离线文档

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

    CI框架中文语言包

    在本话题中,我们将深入探讨CI框架的中文语言包及其在表单验证中的应用。 CI框架的中文语言包是针对该框架默认英文提示的本地化解决方案。这个语言包的主要目的是为了让使用中文的开发者或用户能够更好地理解和交互...

    一个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(命令行接口)工具允许开发者在终端执行各种任务,如自动化测试、...

    ABB ci801_gsd

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

    ci rbac权限控制示例

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

Global site tag (gtag.js) - Google Analytics