• ThinkPHP


    数据库:

    /*
    Navicat MySQL Data Transfer
    
    Source Server         : 本地连接
    Source Server Version : 50710
    Source Host           : localhost:3306
    Source Database       : message
    
    Target Server Type    : MYSQL
    Target Server Version : 50710
    File Encoding         : 65001
    
    Date: 2016-02-09 23:33:55
    */
    
    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for ms_user
    -- ----------------------------
    DROP TABLE IF EXISTS `ms_user`;
    CREATE TABLE `ms_user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(30) DEFAULT NULL,
      `password` char(32) DEFAULT NULL,
      `logintime` int(10) DEFAULT '1',
      `loginip` varchar(30) DEFAULT NULL,
      `lock` tinyint(1) DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

    验证规则:

    1、判断是否为POST提交
    2、判断验证码是否正确
    3、获取用户名,密码
    4、根据用户名,密码查询数据库数据
    5、判断用户是否锁住
    6、更新登录时间,登录ip
    7、存储session,id,username,logintime,loginip
    8、跳转页面

    代码:

    /**
     * 验证登录
     */
    public function dologin(){
        //是否非法操作
        if ( !IS_POST ) $this->error('操作异常,请重新登录!');
    
        //验证码是否正确
        if ( I('code', '', 'md5') != $_SESSION['verify'] ) $this->error('验证码错误!');
    
        //验证账号密码
        $verifyData = array(
            'username'=>I('username'),
            'password'=>I('password', '', 'md5'),
        );
        if ( !$user = M('User')->where($verifyData)->find() ) $this->error('账号或密码错误!');
    
        //判断用户是否锁定
        if ( $user['lock'] == 1 ) $this->error('用户被锁定!');
    
        //更新登录数据
        $updateData = array(
            'id' => $user['id'],
            'logintime' => time(),
            'loginip' => get_real_ip(),
        );
        if ( !$res = M('User')->save($updateData) ) $this->error('更新数据失败,请重新登录!');
    
        //写入session
        $_SESSION['id']         = $user['id'];
        $_SESSION['username']     = $user['username'];
        $_SESSION['logintime']     = $user['logintime'];
        $_SESSION['loginip']     = $user['loginip'];
        if ( !isset($_SESSION['id']) 
            || !isset($_SESSION['username']) 
            || !isset($_SESSION['logintime']) 
            || !isset($_SESSION['loginip']) ) {
            $this->error('操作异常,请重新登录!');
        }
    
        //跳转页面
        $this->redirect('/Admin/Index/index');
    }
  • 相关阅读:
    二维数组和二维指针作为函数的参数
    我所理解的tensorflow
    新篇:A New Start
    3NF(Canonical Cover and Decomposition)
    SQL: group by + having
    hihoCoder挑战赛14
    KMP算法
    二分查找
    Cellular Network
    拓撲排序
  • 原文地址:https://www.cnblogs.com/KTblog/p/5185777.html
Copyright © 2020-2023  润新知