diff options
author | Andrew Dolgov <[email protected]> | 2007-03-01 13:09:05 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2007-03-01 13:09:05 +0100 |
commit | d620cfe70afc35bae4f8c2d92798448812701554 (patch) | |
tree | 37e11268a3d5589d30f32cf332c8922d5be9f69c | |
parent | 64f6db9051ea25293077e0ebcb61f90ec7eb72e9 (diff) |
login system fixes
-rw-r--r-- | functions.js | 2 | ||||
-rw-r--r-- | functions.php | 25 | ||||
-rw-r--r-- | sessions.php | 6 |
3 files changed, 29 insertions, 4 deletions
diff --git a/functions.js b/functions.js index f4c8ee1c1..35b1e1319 100644 --- a/functions.js +++ b/functions.js @@ -56,7 +56,7 @@ function logout_callback() { var container = document.getElementById('notify'); if (xmlhttp.readyState == 4) { try { - window.location.reload(true); + window.location.href = "tt-rss.php"; } catch (e) { exception_error("logout_callback", e); } diff --git a/functions.php b/functions.php index 170696352..59086506a 100644 --- a/functions.php +++ b/functions.php @@ -1167,6 +1167,15 @@ } } } + + if ($_SESSION["cookie_lifetime"] && $_SESSION["uid"]) { + +# print time() . " vs " . $_SESSION["cookie_lifetime"]; + + if (time() > $_SESSION["cookie_lifetime"]) { + return false; + } + } return true; } @@ -1193,9 +1202,24 @@ if ($login_action == "do_login") { $login = $_POST["login"]; $password = $_POST["password"]; + $remember_me = $_POST["remember_me"]; if (authenticate_user($link, $login, $password)) { $_POST["password"] = ""; + + if ($remember_me) { + $_SESSION["cookie_lifetime"] = time() + + SESSION_COOKIE_LIFETIME_REMEMBER; + } else { + $_SESSION["cookie_lifetime"] = time() + SESSION_COOKIE_LIFETIME; + } + + setcookie("ttrss_cltime", $_SESSION["cookie_lifetime"], + $_SESSION["cookie_lifetime"]); + + header("Location: " . $_SERVER["REQUEST_URI"]); + exit; + return; } } @@ -1204,6 +1228,7 @@ render_login_form($link); exit; } + } else { return authenticate_user($link, "admin", null); } diff --git a/sessions.php b/sessions.php index aab945d4d..c2854e04a 100644 --- a/sessions.php +++ b/sessions.php @@ -91,11 +91,11 @@ db_query($session_connection, $query); } -// session_set_cookie_params(SESSION_COOKIE_LIFETIME); - if (DATABASE_BACKED_SESSIONS) { session_set_save_handler("open", "close", "read", "write", "destroy", "gc"); } - + + session_set_cookie_params(SESSION_COOKIE_LIFETIME_REMEMBER); + session_start(); ?> |