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 相关文章推荐
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 PHP
浅谈php中mysql与mysqli的区别分析
Jun 10 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
Symfony2安装的方法(2种方法)
Feb 04 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
Jul 12 PHP
yii2使用gridView实现下拉列表筛选数据
Apr 10 PHP
php使用curl实现ftp文件下载功能
May 16 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
PHP获取HTTP body内容的方法
Dec 31 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
PHP实现限制域名访问的实现代码(本地验证)
Sep 13 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
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
JS数组求和的常用方法实例小结
2019/01/07 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
通过python爬虫赚钱的方法
2019/01/29 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
python连接PostgreSQL过程解析
2020/02/09 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
人事部专员岗位职责
2014/03/04 职场文书
经典英文广告词
2014/03/18 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
Python上下文管理器Content Manager
2021/06/26 Python
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技