zoukankan      html  css  js  c++  java
  • CI登录验证

     

    预先加载数据库操作类和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'); 
    
    html代码:
    <!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代码:
    <?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模型 php代码: 


    <?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;
      }
    }

  • 相关阅读:
    (转)什么是CDC类(Communication Device Class)
    (转)USB协议简介
    (转)USB 基本知识
    千字短文解决工程师们关于SPI的迷糊!
    钱和家庭哪个重要?
    德国人的好习惯和好品质(建议永久收藏)
    USB各种模式 解释
    Battery Charging Specification 1.2 中文详解 来源:www.chengxuyuans.com
    一个班37人考进清华北大,老师发来一则短信,家长都沉默了!
    猫屎咖啡 残忍
  • 原文地址:https://www.cnblogs.com/qhorse/p/5194600.html
Copyright © 2011-2022 走看看