• 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);

     }

     }

     }

     }

     ?>

  • 相关阅读:
    bin/sh^M: bad interpreter: No such file or directory解决
    1.2前置条件
    LINUXIPCS信息
    动态添加样式表规则第3版
    Google放出C++代码风格规范
    我的模块加载系统 v4
    有关婚姻的名言
    javascript 测试工具abut v3
    全世界最短的domReady
    javascript 模板系统 ejs v7
  • 原文地址:https://www.cnblogs.com/eis13/p/5458535.html
Copyright © 2020-2023  润新知