summaryrefslogtreecommitdiff
path: root/lib/Minz/Session.php
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-08-10 20:29:43 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-08-10 20:29:43 +0200
commiteceb7756cfcf117c2a18984291181a84697ed3cd (patch)
tree1a1b461ec85eb20efc7428856bd1ec427bd06a68 /lib/Minz/Session.php
parent6655c1b4299897944dea06309261137a7fa91ad7 (diff)
Add possibility to keep logged in with form
Add an option to keep logged in. Change lifetime of session cookie to 1 year. See https://github.com/marienfressinaud/FreshRSS/issues/465
Diffstat (limited to 'lib/Minz/Session.php')
-rw-r--r--lib/Minz/Session.php35
1 files changed, 30 insertions, 5 deletions
diff --git a/lib/Minz/Session.php b/lib/Minz/Session.php
index ddabc4658..c859be2ed 100644
--- a/lib/Minz/Session.php
+++ b/lib/Minz/Session.php
@@ -15,13 +15,15 @@ class Minz_Session {
* Le nom de session est utilisé comme nom pour les cookies et les URLs (i.e. PHPSESSID).
* Il ne doit contenir que des caractères alphanumériques ; il doit être court et descriptif
*/
- public static function init ($name) {
+ public static function init($name) {
+ $cookie = session_get_cookie_params();
+ self::keepCookie($cookie['lifetime']);
+
// démarre la session
- session_name ($name);
- session_set_cookie_params (0, dirname(empty($_SERVER['REQUEST_URI']) ? '/' : dirname($_SERVER['REQUEST_URI'])), null, false, true);
- session_start ();
+ session_name($name);
+ session_start();
- if (isset ($_SESSION)) {
+ if (isset($_SESSION)) {
self::$session = $_SESSION;
}
}
@@ -68,4 +70,27 @@ class Minz_Session {
Minz_Translate::reset ();
}
}
+
+
+ /**
+ * Spécifie la durée de vie des cookies
+ * @param $l la durée de vie
+ */
+ public static function keepCookie($l) {
+ $cookie_dir = dirname(
+ empty($_SERVER['SCRIPT_NAME']) ? '' : $_SERVER['SCRIPT_NAME']
+ ) . '/';
+ session_set_cookie_params($l, $cookie_dir, $_SERVER['HTTP_HOST'],
+ false, 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);
+ }
+
}