Codeigniter注册登录代码示例


Posted in PHP onJune 12, 2014

本示例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 
PHP 相关文章推荐
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
使用php判断浏览器的类型和语言的函数代码
Feb 28 PHP
PHP导航下拉菜单的实现如此简单
Sep 22 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
php实现比较两个字符串日期大小的方法
May 12 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
利用php生成验证码
Feb 23 PHP
解析 thinkphp 框架中的部分方法
May 07 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
thinkphp5使用无限极分类
Feb 18 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 #PHP
codeigniter数据库操作函数汇总
Jun 12 #PHP
使用PHP函数scandir排除特定目录
Jun 12 #PHP
使用配置类定义Codeigniter全局变量
Jun 12 #PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 #PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 #PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
Jun 12 #PHP
You might like
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
javascript 面向对象 function类
2010/05/13 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
python对象与json相互转换的方法
2019/05/07 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
python3爬取torrent种子链接实例
2020/01/16 Python
python把一个字符串切开的实例方法
2020/09/27 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
荷兰手表网站:Watch2Day
2018/07/02 全球购物
优秀毕业生求职推荐信范文
2013/11/21 职场文书
中层干部岗位职责
2013/12/18 职场文书
导游的职业规划书范文
2013/12/27 职场文书
取保候审保证书
2014/04/30 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
开业典礼致辞
2015/07/29 职场文书