1. 程式人生 > >thinkphp 在兩個應用裡面設定不同的session

thinkphp 在兩個應用裡面設定不同的session

今天專案有個需求就是,需要在兩個應用模組,假如是home和admin兩個模組,要求同一個賬戶,帳號密碼儲存在session中,如果沒有登陸過home,只登陸過admin,那麼在跳轉home應用下的控制器應該跳轉到登陸介面。

這就需要設定session的字首了。

下面是程式碼

我用的是tp5.0框架,可以直接進行session初始化用session函式。

session([
   'prefix'     => 'index',
   'type'       => '',
   'auto_start' => true,
]);

session([
   'prefix'     => 'index',
   'type'       => '',
   'auto_start' => true,
]);

這兩個字首不一致,訪問的時候是這樣訪問的:$_SESSION['index']['id'];

這樣就有了index字首的session陣列。打印出來看是

這樣檢測各應用下的id就可以知道,當前有沒有登陸過該應用。

session([
   'prefix'     => 'index',
   'type'       => '',
   'auto_start' => true,
]);

//設定字首放在設定session之前
session('id', $data['ID']);
session('Account', $data['Account']);
session('AccountType', $data['AccountType']);
session('AuthoriezdModules', $data['AuthoriezdModules']);
setcookie('Account',$data['Account'],time()+3600*24*31,"/");
 setcookie('password',$condition['Pwd'],time()+3600*24*31,"/");
 // myLog(session('id'),__LINE__);die;
 // myLog($_SESSION['index']['id'],__LINE__);die;
 // setcookie('remember',$remember,time()+3600);
// 儲存3個小時 
$lifeTime = 3600*3;  
setcookie(session_name(), session_id(), time() + $lifeTime, "/");