Ejemplo n.º 1
0
Archivo: session.php Proyecto: R-J/hm3
 /**
  * Start the session. This could be an existing session or a new login
  * @param object $request request details
  * @return void
  */
 public function start($request)
 {
     if (array_key_exists($this->cname, $request->cookie)) {
         session_id($request->cookie[$this->cname]);
     }
     list($secure, $path, $domain) = $this->set_session_params($request);
     session_set_cookie_params(0, $path, $domain, $secure);
     Hm_Functions::session_start();
     if ($request->type == 'HTTP' && !array_key_exists('logout', $request->post)) {
         session_regenerate_id(true);
         $this->cname = session_id();
     }
     if (array_key_exists('data', $_SESSION)) {
         $data = $this->plaintext($_SESSION['data']);
         if (is_array($data)) {
             $this->data = $data;
         } elseif (!$this->loaded) {
             $this->destroy($request);
             Hm_Debug::add('Mismatched session level encryption key');
         }
     }
     $this->active = true;
 }