zoukankan      html  css  js  c++  java
  • 登录和退出

    1.数据库设计

     1 CREATE TABLE `smar_admin` (
     2   `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
     3   `username` varchar(30) NOT NULL,
     4   `password` varchar(60) NOT NULL,
     5   `save` varchar(6) NOT NULL,
     6   `role_id` smallint(5) unsigned NOT NULL,
     7   `timer` int(11) NOT NULL,
     8   `uptimer` int(11) NOT NULL,
     9   `lasttimer` int(11) NOT NULL,
    10   `loginip` varchar(16) NOT NULL,
    11   `status` tinyint(1) NOT NULL,
    12   PRIMARY KEY (`id`)
    13 ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

    2.思路

      ①:session 验证 验证码

      ②:从数据库中取出账号和密码进行验证

      ③:验证成功后进行登录表示设置

          a.//session 设置登录标示

          b.//cookie保存登陆信息

          c.//记录登录时间和IP地址并进行保存

    3.源码

      控制器

     1     public function index(){
     2         $adminL = D('Admin');
     3         if(IS_POST){
     4             //判断验证码
     5             if(strtoupper($_POST['verify']) == $_SESSION['code']){
     6                 //账号和密码验证
     7                 if($adminL->CheckByLogin($_POST['username'],$_POST['password'])){
     8                     $_SESSION['is_login']='yes';
     9                     //cookie保存登陆信息
    10                     setcookie('Login_id',$_POST['username'],time()+3600,'/');
    11                     setcookie('Login_pass',md5(md5("smar".$_POST['password']."php")),time()+3600,'/');
    12                     $_SESSION['Login_id']=$_POST['username'];
    13                     //记录登录时间和IP地址
    14                     $adminL->lasttimer = time();
    15                     $adminL->loginip = getIP();    //自定义的一个函数
    16                     $result = $adminL->where()->save();
    17                     if($result){
    18                         $this->success('登录成功','/index.php/admin/index/');exit();
    19                     }
    20                     else{
    21                         $this->error('程序出现异常请刷新页面');exit();
    22                     }
    23                 }else{
    24                     $this->error('账号密码错误');
    25                     exit();
    26                 }
    27             }else{
    28                 $this->error('验证失败');
    29                 exit();
    30             }
    31         }
    32         else{
    33             $this->display();
    34         }
    35     }

      模型:

    1     public function checkByLogin($username,$password){
    2         /*smar  php   加密的字段可自行加密*/
    3         if($this->where("username='$username' and password ='".md5(md5("smar".$password."php"))."'")->find()){
    4             return true;            
    5         }else{
    6             echo false;
    7         }
    8     }

    4. 退出登录

      清除cookie 和session

  • 相关阅读:
    Javascript操纵Cookie--转
    java使用jsp servlet来防止csrf 攻击的实现方法
    Creating a CSRF protection with Spring 3.x--reference
    Preventing CSRF in Java web apps---reference
    Linux服务器集群系统(四)--转
    Linux服务器集群系统(三)--转
    UVA 10529 Dumb Bones 可能性dp 需求预期
    android 渐变drawable
    定义你自己ViewGroup
    Android系统关机或几种方式重启
  • 原文地址:https://www.cnblogs.com/subtract/p/4230161.html
Copyright © 2011-2022 走看看