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
MySQL修改密码方法总结
Mar 25 PHP
PHP校验ISBN码的函数代码
Jan 17 PHP
用来解析.htpasswd文件的PHP类
Sep 05 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
php生成百度sitemap站点地图类函数实例
Oct 17 PHP
php购物车实现方法
Jan 03 PHP
8个必备的PHP功能开发
Oct 02 PHP
thinkphp3.x中session方法的用法分析
May 20 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
Laravel使用模型实现like模糊查询的例子
Oct 24 PHP
PhpStorm+xdebug+postman调试技巧分享
Sep 15 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
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
Javascript实现DIV滚动自动滚动到底部的代码
2012/03/01 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
大学生自我评价怎样写好
2013/10/23 职场文书
《黄河颂》教学反思
2014/02/07 职场文书
租房协议书范本
2014/04/09 职场文书
卫生系统先进事迹
2014/05/13 职场文书
民政局个人整改措施
2014/09/24 职场文书
道歉短信大全
2015/05/12 职场文书
早安问候语大全
2015/11/10 职场文书
班主任寄语2016
2015/12/04 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
mysql字符串截取函数小结
2021/04/05 MySQL
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫
Python必备技巧之函数的使用详解
2022/04/04 Python