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 相关文章推荐
使用Apache的rewrite技术
Jun 22 PHP
一个很方便的 XML 类!!原创的噢
Oct 09 PHP
php桌面中心(一) 创建数据库
Mar 11 PHP
php 变量未定义等错误的解决方法
Jan 12 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
php中Socket创建与监听实现方法
Jan 05 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
php正则替换处理HTML页面的方法
Jun 17 PHP
php并发加锁示例
Oct 17 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 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
杏林同学录(四)
2006/10/09 PHP
php下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
vue 组件销毁并重置的实现
2020/01/13 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
Python实现二分法算法实例
2015/02/02 Python
Python实现在线程里运行scrapy的方法
2015/04/07 Python
python实现的简单抽奖系统实例
2015/05/22 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
Python实现k-means算法
2018/02/23 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
网吧员工管理制度
2015/08/05 职场文书