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 相关文章推荐
在字符串中把网址改成超级链接
Oct 09 PHP
E路文章系统PHP
Dec 11 PHP
php中对xml读取的相关函数的介绍一
Jun 05 PHP
深入HTTP响应状态码速查表的详解
Jun 07 PHP
浅析PHP中的UNICODE 编码与解码
Jun 29 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
PHP number_format函数原理及实例解析
Jul 14 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
新手学PHP之数据库操作详解及乱码解决!
2007/01/02 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
Js的MessageBox
2006/12/03 Javascript
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
Python中标准模块importlib详解
2017/04/16 Python
Python2包含中文报错的解决方法
2018/07/09 Python
举例讲解Python常用模块
2019/03/08 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
商务英语专业自荐信
2013/10/14 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
文案策划求职信
2014/04/14 职场文书
工会工作先进事迹
2014/08/18 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js