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编程网上资源导航
Oct 09 PHP
浅析PHP水印技术
Feb 14 PHP
实现php加速的eAccelerator dll支持文件打包下载
Sep 30 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
PHP生成随机用户名和密码的实现代码
Feb 27 PHP
php数组键名技巧小结
Feb 17 PHP
php查询操作实现投票功能
May 09 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
PHP 断点续传实例详解
Nov 11 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 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常用函数的使用汇总
2013/06/08 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
JavaScript变量声明详解
2014/11/27 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
Javascript复制实例详解
2016/01/28 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
python opencv 检测移动物体并截图保存实例
2020/03/10 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
单位单身证明范本
2014/01/11 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
社会学专业求职信
2014/07/17 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
大学学生会竞选稿
2015/11/19 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python