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 相关文章推荐
用PHP和ACCESS写聊天室(三)
Oct 09 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
PHP cdata 处理(详细介绍)
Jul 05 PHP
php中的curl_multi系列函数使用例子
Jul 29 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
php筛选不存在的图片资源
Apr 28 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
Dec 29 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
php cookie工作原理与实例详解
Jul 18 PHP
PHP实现登录验证码校验功能
May 17 PHP
php使用socket调用http和smtp协议实例小结
Jul 26 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
浅析php中jsonp的跨域实例
2013/06/21 PHP
提升PHP性能的21种方法介绍
2013/06/25 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
php将日期格式转换成xx天前的格式
2015/04/16 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
空乘英文求职信
2014/04/13 职场文书
诚信承诺书模板
2014/05/26 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
村创先争优活动总结
2014/08/28 职场文书
法人委托书范本
2014/09/15 职场文书
Python中相见恨晚的技巧
2021/04/13 Python