牛骨文教育服务平台(让学习变的简单)
博文笔记

thinkphp 在两个应用里面设置不同的session

创建时间:2017-05-24 投稿人: 浏览次数:695

今天项目有个需求就是,需要在两个应用模块,假如是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, "/");



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。