/** * 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; }