Преглед изворни кода

do not use session cookie lifetime for additional cookies

Andrew Dolgov пре 11 година
родитељ
комит
e57a1507ae
4 измењених фајлова са 6 додато и 8 уклоњено
  1. 1 1
      classes/pref/prefs.php
  2. 1 1
      classes/rpc.php
  3. 0 4
      config.php-dist
  4. 4 2
      include/functions.php

+ 1 - 1
classes/pref/prefs.php

@@ -114,7 +114,7 @@ class Pref_Prefs extends Handler_Protected {
 			if ($pref_name == "language") {
 				if ($_SESSION["language"] != $value) {
 					setcookie("ttrss_lang", $value,
-						time() + SESSION_COOKIE_LIFETIME);
+						time() + COOKIE_LIFETIME_LONG);
 					$_SESSION["language"] = $value;
 
 					$need_reload = true;

+ 1 - 1
classes/rpc.php

@@ -479,7 +479,7 @@ class RPC extends Handler_Protected {
 		$wide = (int) $_REQUEST["wide"];
 
 		setcookie("ttrss_widescreen", $wide,
-			time() + SESSION_COOKIE_LIFETIME);
+			time() + COOKIE_LIFETIME_LONG);
 
 		print json_encode(array("wide" => $wide));
 	}

+ 0 - 4
config.php-dist

@@ -139,10 +139,6 @@
 	define('SESSION_COOKIE_LIFETIME', 86400);
 	// Default lifetime of a session (e.g. login) cookie. In seconds, 
 	// 0 means cookie will be deleted when browser closes.
-	// Setting this to zero will affect several user preferences
-	// like widescreen mode not saving and disable "remember me".
-	// Note that if remember me is not checked, session cookie
-	// will always expire with browser session.
 
 	define('SESSION_CHECK_ADDRESS', 1);
 	// Check client IP address when validating session:

+ 4 - 2
include/functions.php

@@ -5,6 +5,8 @@
 	define('LABEL_BASE_INDEX', -1024);
 	define('PLUGIN_FEED_BASE_INDEX', -128);
 
+	define('COOKIE_LIFETIME_LONG', 86400*365);
+
 	$fetch_last_error = false;
 	$fetch_last_error_code = false;
 	$fetch_last_content_type = false;
@@ -796,9 +798,9 @@
 				$_SESSION["last_login_update"] = time();
 			}
 
-			if ($_SESSION["uid"] && $_SESSION["language"] && SESSION_COOKIE_LIFETIME > 0) {
+			if ($_SESSION["uid"] && $_SESSION["language"]) {
 				setcookie("ttrss_lang", $_SESSION["language"],
-					time() + SESSION_COOKIE_LIFETIME);
+					time() + COOKIE_LIFETIME_LONG);
 			}
 
 			if ($_SESSION["uid"]) {