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 正则 过滤html 的超链接
Jun 02 PHP
ajax php 实现写入数据库
Sep 02 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
Dec 12 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 PHP
PHP计划任务、定时执行任务的实现代码
Apr 23 PHP
PHP程序级守护进程的实现与优化的使用概述
May 02 PHP
如何用php生成扭曲及旋转的验证码图片
Jun 07 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
PHP中for循环与foreach的区别
Mar 06 PHP
Laravel框架搜索分页功能示例
Feb 01 PHP
imagettftext() 失效,不起作用
Mar 09 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新手上路(八)
2006/10/09 PHP
escape unescape的php下的实现方法
2007/04/27 PHP
php中iconv函数使用方法
2008/05/24 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
Ext 今日学习总结
2010/09/19 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
Python中交换两个元素的实现方法
2018/06/29 Python
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
教师自我鉴定范文
2013/11/10 职场文书
学习2014年全国两会心得体会
2014/03/12 职场文书
委托书范文
2014/04/02 职场文书
骨干教师个人总结
2015/02/11 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS