zoukankan      html  css  js  c++  java
  • tp框架不允许多终端登录处理

    public function login(){

    $arr['admin']=$_POST['username'];

    $arr['password']=md5($_POST['password']);

    $admin=M('Admin');

    $res=$admin->where($arr)->find();

    if($res){

    $ac['sid']=getCode(3);

    $_SESSION['ac']=$ac['sid'];

    $admin->where($arr)->save($ac);

    }

    $this->redirect("Index/index");

    }

    每次登录成功时生成一个随机码跟用户信息一起保存在session里,同时把此码保存在数据库中作为登录账号信息的一个字段;

    每一次操作都验证session里的随机码与数据库保存的是否相同,不同则说明此账号已经异地登录,弹出提示并推出此账号;

    thinkphp的示例:

    <?php

     

    class BaseAction extends Action {

     

    public function _initialize(){

     

    $a=M('Admin');

     

    //必须登录

     

    if(empty($_SESSION["admin"]) || empty($_SESSION['ac'])){

     

    $this->redirect('Login/dologin');

     

    }else{

     

    $arr['admin']=$_SESSION["admin"];

     

    $cc=$a->where($arr)->getField('sid');

     

    if($cc!=$_SESSION['ac']){

     

    $this->success('此账号被异地登录,如非本人操作,请及时修改密码',U('Login/logout'),3);

     }

     }

     }

     }

     ?>

  • 相关阅读:
    多线程
    python 进程间通信
    python 生产者消费者模型
    多线程锁
    io多路复用(三)
    div 加滚动条的方法
    10矩形覆盖
    11.二进制中1的个数
    12数值的整数次方
    9 变态跳台阶
  • 原文地址:https://www.cnblogs.com/eis13/p/5458535.html
Copyright © 2011-2022 走看看