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 开源AJAX框架14种
Aug 24 PHP
关于php fread()使用技巧
Jan 22 PHP
php URL验证正则表达式
Jul 19 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
一个经典实用的PHP图像处理类分享
Nov 18 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
PHP入门教程之PHP操作MySQL的方法分析
Sep 11 PHP
PHP实现的下载远程文件类定义与用法示例
Jul 05 PHP
PHP文件上传小程序 适合初学者学习!
May 23 PHP
TP5框架页面跳转样式操作示例
Apr 05 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
星际争霸兵种名称对照表
2020/03/04 星际争霸
SONY ICF-SW55的电路分析
2021/03/02 无线电
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
PHP中比较时间大小实例
2014/08/21 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
PDO::errorCode讲解
2019/01/28 PHP
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
继续学习javascript闭包
2015/12/03 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
前端天气插件tpwidget使用方法详解
2019/06/24 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
Python实现的桶排序算法示例
2017/11/29 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
Python最小二乘法矩阵
2019/01/02 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
大学生操行评语大全
2014/12/31 职场文书
班主任高考寄语
2015/02/26 职场文书
小马王观后感
2015/06/11 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
追悼会答谢词范文
2015/09/29 职场文书
教你怎么用Python操作MySql数据库
2021/05/31 Python
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android