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+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
php图片缩放实现方法
Feb 20 PHP
php中substr()函数参数说明及用法实例
Nov 15 PHP
服务器迁移php版本不同可能诱发的问题
Dec 22 PHP
浅谈mysql_query()函数的返回值问题
Sep 05 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
Laravel实现表单提交
May 07 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 24 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实现删除非站内外部链接实例代码
2014/06/17 PHP
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
layui 数据表格复选框实现单选功能的例子
2019/09/19 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
python聊天程序实例代码分享
2013/11/18 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
python2.7实现邮件发送功能
2018/12/12 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
汉语专业应届生求职信
2013/10/01 职场文书
二手房购房意向书范本
2014/04/01 职场文书
设备管理实施方案
2014/05/31 职场文书
门卫管理制度范本
2015/08/05 职场文书
防溺水主题班会教案
2015/08/12 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书