Codeigniter注册登录代码示例

本示例Codeigniter注册登录代码源自一个codeigniter的项目,现分享下~

由于使用了 Active Record 类,一般数据库操作只有两层,即是C和V

controllers/login.php文件:

代码如下:

<?php
class Login extends CI_Controller {
 private $pass = '';
 public function __construct() {
  parent::__construct ();
  $this->load->helper ( array (
    'form',
    'url'
  ) );
  $this->load->library('session');
 }
 public function index() {
  $this->load->view ( 'login' );
 }
 public function formsubmit() {
  $this->load->library ( 'form_validation' );

$this->form_validation->set_rules ( 'username', 'Username', 'required' );
  $this->form_validation->set_rules ( 'password', 'Password', 'required' );
  if ($this->form_validation->run () == FALSE) {
   $this->load->view ( 'login' );
  } else {
   if (isset ( $_POST ['submit'] ) && ! empty ( $_POST ['submit'] )) {
    $data = array (
      'user' => $_POST ['username'],
      'pass' => md5($_POST ['password'])
    );
    $newdata = array(
      'username'  =>  $data ['user'] ,
      'userip'     => $_SERVER['REMOTE_ADDR'],
      'luptime'   =>time()
    );
    if ($_POST ['submit'] == 'login') {
     $query = $this->db->get_where ( 'uc_user', array (
       'user' => $data ['user']
     ), 1, 0 );

foreach ( $query->result () as $row ) {
      $pass = $row->pass;
     }
     if ($pass == $data ['pass']) {

$this->session->set_userdata($newdata);
      $this->load->view ( 'usercenter', $data );
     }
    } else if ($_POST ['submit'] == 'register') {

$this->session->set_userdata($newdata);
     $this->db->insert ( 'uc_user', $data );
     $this->load->view ( 'usercenter', $data );
    } else {
     $this->session->sess_destroy();
     $this->load->view ( 'login' );
    }
   }
  }
 }
}

views/login.php文件:

代码如下:

<html>
<?php echo validation_errors(); ?>
<?php echo form_open('login/formsubmit'); ?>
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>
<input type="submit" name="submit" value="login">
</td>
<td>
<input type="submit" name="submit" value="register">
</td>
</tr>
</table>
</form>
</html>

sql语句:

uc_user:

代码如下:

CREATE TABLE `uc_user` (                                  
           `id` int(11) unsigned zerofill NOT NULL AUTO_INCREMENT, 
           `user` varchar(20) NOT NULL,                            
           `pass` char(32) NOT NULL,                               
           `role` enum('root','normal') NOT NULL DEFAULT 'root',   
           `del` decimal(1,0) NOT NULL DEFAULT '0',                
           PRIMARY KEY (`id`)                                      
         ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1

(0)

相关推荐

  • Codeigniter框架的更新事务(transaction)BUG及解决方法

    由于ci事务判断出错回滚的条件是语句是否执行成功,而更新操作时,就算影响的条数为0,sql语句执行的结果过仍然为1,因为它执行成功了,只是影响的条数为0. 下面介绍解决这个问题的方法: 对于一次要执行许多的语句的事务 只需在更新操作下根据影响条数是否为0来决定是否会滚即可,下面假设第二条语句为更新操作. 复制代码 代码如下: //采用 Codeigniter 事务的手动模式     $this->db->trans_strict(FALSE);     $this->db->tra

  • 基于Codeigniter框架实现的student信息系统站点动态发布功能详解

    本文实例讲述了基于Codeigniter框架实现的student信息系统站点动态发布功能.分享给大家供大家参考,具体如下: 既然是动态站点,肯定有数据库表的存在,在此不废话,下面我们来看一下数据库表: CREATE TABLE IF NOT EXISTS `student`( //主键id `id` int(11) NOT NULL AUTO_INCREMENT, //学生姓名 `s_name` varchar(64) NOT NULL, //学生家长的姓名 `p_name` varchar(6

  • CodeIgniter模板引擎使用实例

    一.示例: 通常在使用codeigniter的时候经常使用这样的方式载入: $this->load->view('about', $data); 通过这个类库,可以将一个视图载入到这个模板中: $this->template->load('template', 'about', $data); 这里将视图about.php载入到template模板文件中. 二.安装 下载ci_template_library.zip 解压后将Template.php放到application/li

  • Codeigniter(CI)框架分页函数及相关知识

    一般在数据分页的时候需要获取当前页的数据和总条数,一般人是在model中封装两个函数分别获取当前页的数据和数据总条数,业务逻辑类似,感觉有点冗余,可以封装在一起: 复制代码 代码如下: /**      * 获取分页数据及总条数      * @param string @tablename 表名      * @param mixed $where 条件      * @param int $limit 每页条数      * @param int $offset 当前页      */   

  • CI(CodeIgniter)框架配置

    MVC的组成部分: 模型 (Model) 代表你的数据结构.通常来说,你的模型类将包含取出.插入.更新你的数据库资料这些功能. 视图 (View) 是展示给用户的信息.一个视图通常是一个网页. 控制器 (Controller) 是模型.视图以及其他任何处理 HTTP 请求所必须的资源之间的中介,并生成网页. 举例 比如一批统计数据你可以分别用柱状图.饼图来表示.C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新. CI的特点: 简单:CodeIgniter是经过 Apache/BSD-

  • 在CODEIGNITER中 在CI中引入外部的JS与CSS呢

    但今天在用CI时,却忘记了,搞了很久都没有出来,上了CI的中国官方网,终于在他们帮助下把问题觖决了,在这里把它贴出来,供大家分享. (另注:我这里是隐藏了url中的index.php文件的,与不隐藏有所不同,但最终都是采用绝对URL) 首先,我在.htaccess文件里设置(作用是隐藏index.php),如下: RewriteEngine on RewriteCond $1 !^(index\.php|images|js|img|css|robots\.txt) #在这里写要排除的资源等 Re

  • 解析CodeIgniter自定义配置文件

    我们有时候在CI框架中需要自定义配置文件,那要怎么处理呢?下面就给你介绍处理的办法.配置文件config/expert.php 复制代码 代码如下: <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * 专家配置文件 * * @author xxx * @version $Id: expert.php v 1.0 2012/5/31 14:41:00 xxx $ * @package as

  • CI框架给视图添加动态数据

    数据通过控制器以一个数组或是对象的形式传入视图 , 这个数组或对象作为视图载入函数的第二个参数如果你使用一个对象,那么类变量将转换为数组元素.好了,让我们用你的控制器试试.打开控制器并添加以下代码 <?php class Blog extends CI_Controller {    function index()  {   $data['title'] = "My Real Title";   $data['heading'] = "My Real Heading&

  • Cisco 路由器动态和静态地址转换

    NAT Router ip nat pool test 172.16.131.2 172.16.131.10 netmask 255.255.255.0 ip nat inside source list 7 pool test ip nat inside source static 10.10.10.1 172.16.131.1 interface e 0 ip address 10.10.10.254 255.255.255.0 ip nat inside interface s 0 ip

  • php之CodeIgniter学习笔记

    在使用数据库之前,我们最好将数据库进行自动连接:config/autoload.php自动加载 $autoload['libraries'] = array('database');一些常用函数 选择数据$this->db->select();允许你在SQL查询中写 SELECT 部分.$this->db->where();$this->db->or_where();$this->db->where_in();允许你在SQL查询中写 WHERE部分,其余各种

  • CI(CodeIgniter)框架中的增删改查操作

    CodeIgniter的数据函数类在 \system\database\DB_active_rec.php 复制代码 代码如下: <span style="font-size:16px;">class ModelName extends CI_Model {     function __construct()     {         parent::__construct();     } }</span> 连接数据库:$this->load->

  • CI(CodeIgniter)框架介绍

    CodeIgniter 是一个应用程序框架 1.免费:CodeIgniter是经过Apache/BSD-style开源许可授权的,只要你愿意就可以使用它. 2.简单:CodeIgniter是真正的轻量级,核心系统只需要一些非常小的库. 3.MVC:CodeIgniter使用了MVC的方法,可以更好的使表现层和逻辑层分离. --应用程序流程图 index.php 作为前端控制器,初始化运行 CodeIgniter 所需要的基本资源. Router 检查 HTTP 请求,以确定谁来处理请求. 如果缓

  • apache+codeigniter 通过.htcaccess做动态二级域名解析

    复制代码 代码如下: AuthName "yousite Website Coming Soon..." //如果你想给你的网站加个权限访问 AuthType Basic AuthUserFile D:/xxx/.htpasswd #如果你想设置密码访问 如何生成.htpasswd可以访问 http://www.htaccesstools.com/htpasswd-generator/ #AuthGroupFile /dev/null require valid-user <If

随机推荐