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 相关文章推荐
模板引擎Smarty深入浅出介绍
Dec 06 PHP
PHP 向右侧拉菜单实现代码,测试使用中
Nov 03 PHP
Smarty Foreach 使用说明
Mar 23 PHP
PHP文件注释标记及规范小结
Apr 01 PHP
php setcookie函数的参数说明及其用法
Apr 20 PHP
百度地图API使用方法详解
Aug 25 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
Oct 08 PHP
php+jQuery递归调用POST循环请求示例
Oct 14 PHP
PHP的中使用非缓冲模式查询数据库的方法
Feb 05 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 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实现的贪婪算法实例
2017/10/17 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
javascript针对DOM的应用实例(一)
2012/04/15 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
element el-input directive数字进行控制
2018/10/11 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
解读Django框架中的低层次缓存API
2015/07/24 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
python实现汽车管理系统
2018/11/30 Python
在Python中使用Neo4j的方法
2019/03/14 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
用python解压分析jar包实例
2020/01/16 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
四年级科学教学反思
2014/02/10 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
生日宴会祝酒词
2015/08/10 职场文书
2016年春节问候语
2015/11/11 职场文书
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript
浅谈Node的内存泄露问题
2022/05/06 NodeJs