コード例 #1
0
 public function handleInitSession($event)
 {
     $global = Ibos::app()->setting->toArray();
     Ibos::app()->session->load($global["cookie"]["sid"], $global["clientip"], Ibos::app()->user->isGuest ? 0 : Ibos::app()->user->uid);
     $global["sid"] = Ibos::app()->session->sid;
     $global["session"] = Ibos::app()->session->var;
     if (!empty($global["sid"]) && $global["sid"] != $global["cookie"]["sid"]) {
         MainUtil::setCookie("sid", $global["sid"], 86400);
     }
     Ibos::app()->setting->copyFrom($global);
     $isNewSession = Ibos::app()->session->isNew;
     if ($isNewSession) {
         if (EnvUtil::ipBanned($global["clientip"])) {
             Ibos::error(Ibos::lang("User banned", "message"));
         }
     }
     if (!Ibos::app()->user->isGuest && ($isNewSession || Ibos::app()->session->getKey("lastactivity") + 600 < TIMESTAMP)) {
         Ibos::app()->session->setKey("lastactivity", TIMESTAMP);
         if ($isNewSession) {
             UserStatus::model()->updateByPk(Ibos::app()->user->uid, array("lastip" => $global["clientip"], "lastvisit" => TIMESTAMP));
         }
     }
 }