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 相关文章推荐
PHP5中MVC结构学习
Oct 09 PHP
PHP4.04简明安装
Oct 09 PHP
PHP实现多服务器session共享之NFS共享的方法
Mar 16 PHP
mayfish 数据入库验证代码
Apr 30 PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
PHP 实现代码复用的一个方法 traits新特性
Feb 22 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
Feb 04 PHP
PHP中大括号'{}'用法实例总结
Feb 08 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
May 02 PHP
详解Go与PHP的语法对比
May 29 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 setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
PHP Directory 函数的详解
2013/03/07 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
JS实现图片点击后出现模态框效果
2017/05/03 Javascript
JavaScript之json_动力节点Java学院整理
2017/06/29 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
详解用Python实现自动化监控远程服务器
2019/05/18 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
科室工作的个人自我评价
2013/10/30 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
工作保证书范文
2014/04/29 职场文书
写给老师的感谢信
2015/01/20 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python