$v) { if ($v === false) { unset($_SESSION[$k]); } else { $_SESSION[$k] = $v; } } if (!self::$volatile && !self::$locked) { session_write_close(); } } /** * Permet d'effacer une session * @param bool $force si à false, n'efface pas le paramètre de langue */ public static function unset_session($force = false) { $language = self::param('language'); if (!self::$volatile) { session_destroy(); } $_SESSION = array(); if (!$force) { self::_param('language', $language); Minz_Translate::reset($language); } } public static function getCookieDir() { // Get the script_name (e.g. /p/i/index.php) and keep only the path. $cookie_dir = ''; if (!empty($_SERVER['HTTP_X_FORWARDED_PREFIX'])) { $cookie_dir .= rtrim($_SERVER['HTTP_X_FORWARDED_PREFIX'], '/ '); } $cookie_dir .= empty($_SERVER['REQUEST_URI']) ? '/' : $_SERVER['REQUEST_URI']; if (substr($cookie_dir, -1) !== '/') { $cookie_dir = dirname($cookie_dir) . '/'; } return $cookie_dir; } /** * Spécifie la durée de vie des cookies * @param int $l la durée de vie */ public static function keepCookie($l) { session_set_cookie_params($l, self::getCookieDir(), '', Minz_Request::isHttps(), true); } /** * Régénère un id de session. * Utile pour appeler session_set_cookie_params après session_start() */ public static function regenerateID() { session_regenerate_id(true); } public static function deleteLongTermCookie($name) { setcookie($name, '', 1, '', '', Minz_Request::isHttps(), true); } public static function setLongTermCookie($name, $value, $expire) { setcookie($name, $value, $expire, '', '', Minz_Request::isHttps(), true); } public static function getLongTermCookie($name) { return isset($_COOKIE[$name]) ? $_COOKIE[$name] : null; } }