易怀源

导航

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

 }

 }

 }

 }

 ?>

 

posted on 2016-05-04 15:15  易怀源  阅读(214)  评论(0编辑  收藏  举报