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 相关文章推荐
Zend引擎的发展 [15]
Oct 09 PHP
上传多个文件的PHP脚本
Nov 26 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
教你在PHPStorm中配置Xdebug
Jul 27 PHP
PHP微信API接口类
Aug 22 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
Dec 05 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 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
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
Node.js实现数据推送
2016/04/14 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
javascript实现文本框标签验证的实例代码
2018/10/14 Javascript
JS实现拼图游戏
2021/01/29 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
python 自定义装饰器实例详解
2019/07/20 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
财务部岗位职责
2013/11/19 职场文书
保密普查工作实施方案
2014/02/25 职场文书
新年联欢会主持词
2014/03/27 职场文书
三八节标语
2014/06/27 职场文书
说谎欺骗人检讨书300字
2014/11/18 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
党员反邪教心得体会
2016/01/15 职场文书
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL