ci用户登录
[list]
a. 注: 使用session , 要设定 encryption key : config.php中: $config['encryption_key'] = '!@#$%^&*()';
注: 由于该页面使用了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>
- <?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');
- }
- }
注: 由于使用了数据库, 在这里必须首先加载数据库连接: 即: 在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用户登录的更多相关文章
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...
- javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- PHP验证用户登录例子-学习笔记
1.基本流程: 2.UML类图: 3.PHP代码: 3.1 index.php <?php /** * Created by PhpStorm. * User: andy * Date: 16- ...
- Ubuntu设置root用户登录图形界面
Ubuntu默认的是root用户不能登录图形界面的,只能以其他用户登录图形界面.这样就很麻烦,因为权限的问题,不能随意复制删除文件,用gedit编辑文件时经常不能保存,只能用vim去编辑. 解决的办法 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(19)-权限管理系统-用户登录
系列目录 我们之前做了验证码,登录界面,却没有登录实际的代码,我们这次先把用户登录先完成了,要不权限是讲不下去了 把我们之前的表更新到EF中去 登录在Account控制器,所以我们要添加Account ...
- Asp.Net Core 项目实战之权限管理系统(5) 用户登录
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- android安卓Sqlite数据库实现用户登录注册
看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...
随机推荐
- Rollei SL66 使用说明
根据记忆,并用不规范的语言描述我对sl66的使用心得:一.上卷1.用摇把顺时针转到12点位置,再退回3点位置:2.安插刀:3.后背上方按钮向右拨,打开后背:4.取出,装卷,再放入:5.转动后背上旋钮, ...
- python--模块导入与执行
定义:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 一.模块注意: 1.所有的模块都应该自觉的往上写 2.调用模块的时候都是最先在本地找 3.写模块的顺序是 ...
- 使用lombok时@Setter @Getter无效
原文链接 : https://blog.csdn.net/marion158/article/details/87893480 lombok是一个帮助简化代码的工具,通过注解的形式例如@Setter ...
- python 2 学习历程(一)
在用户输入字符串的时候,有时会带有一些其他的字符,例如常见的空格 除非在网页或者某个位置声明了空格也算字符,或者一些账号等安全程度较高的环节,多了一个空格很少有人会注意到,并且愿意即时改正它们,那么这 ...
- C# Func和匿名方法 简单使用
今天敲代码遇见一个问题,解决中用到了C#的Func和匿名方法,发现挺好用的 定义一个这样的方法可以避免重复写try catch 这里用到了Func<int,string> ,它其实就是一个 ...
- sqlmap结合burpsuite对post请求进行注入测试
1. 浏览器打开目标地址 http://testasp.vulnweb.com/Login.asp 2. 配置burp代理(127.0.0.1:8080)以拦截请求 3. 点击login表单的subm ...
- Java ----单个list 删除元素
转载:https://www.cnblogs.com/lostyears/p/8809336.html 方式一:使用Iterator的remove()方法 public class Test { pu ...
- JavaWeb学习篇之----自定义标签&&JSTL标签库详解
今天来看一下自定义标签的内容,自定义标签是JavaWeb的一部分非常重要的核心功能,我们之前就说过,JSP规范说的很清楚,就是Jsp页面中禁止编写一行Java代码,就是最好不要有Java脚本片段,下面 ...
- NX二次开发-关闭信息窗口UF_UI_close_listing_window
#include <uf.h> #include <uf_ui.h> UF_initialize(); //打开信息窗口 UF_UI_open_listing_window() ...
- Android获取Root权限之后的静默安装实现代码示例分析
转:http://blog.csdn.net/jiankeufo/article/details/43795015 Adroid开发中,我们有时会遇到一些特殊功能的实现,有些功能并没有太高技术难度,但 ...