From 284dbec9cfcaa1479e56582540c25a1590878cf7 Mon Sep 17 00:00:00 2001 From: "Paul S. Owen" Date: Sat, 15 Dec 2001 16:40:35 +0000 Subject: [PATCH] Various changes to accompany session updates ... MSSQL users should be prepared to alter or remove the session_last_visit field or face potential problems git-svn-id: file:///svn/phpbb/trunk@1588 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/db/schemas/mssql_schema.sql | 1 - phpBB/db/schemas/mysql_schema.sql | 1 - phpBB/db/schemas/postgres_schema.sql | 1 - phpBB/includes/sessions.php | 21 +++++---------------- phpBB/index.php | 2 +- 5 files changed, 6 insertions(+), 20 deletions(-) diff --git a/phpBB/db/schemas/mssql_schema.sql b/phpBB/db/schemas/mssql_schema.sql index 2cd1613e96..b13f5a4939 100644 --- a/phpBB/db/schemas/mssql_schema.sql +++ b/phpBB/db/schemas/mssql_schema.sql @@ -181,7 +181,6 @@ CREATE TABLE [phpbb_sessions] ( [session_user_id] [int] NOT NULL , [session_start] [int] NULL , [session_time] [int] NULL , - [session_last_visit] [int] NULL , [session_ip] [char] (8) NOT NULL , [session_page] [int] NULL , [session_logged_in] [smallint] NULL diff --git a/phpBB/db/schemas/mysql_schema.sql b/phpBB/db/schemas/mysql_schema.sql index 4b39e46014..0b8fdf810c 100644 --- a/phpBB/db/schemas/mysql_schema.sql +++ b/phpBB/db/schemas/mysql_schema.sql @@ -295,7 +295,6 @@ CREATE TABLE phpbb_sessions ( session_user_id mediumint(8) DEFAULT '0' NOT NULL, session_start int(11) DEFAULT '0' NOT NULL, session_time int(11) DEFAULT '0' NOT NULL, - session_last_visit int(11) DEFAULT '0' NOT NULL, session_ip char(8) DEFAULT '0' NOT NULL, session_page int(11) DEFAULT '0' NOT NULL, session_logged_in tinyint(1) DEFAULT '0' NOT NULL, diff --git a/phpBB/db/schemas/postgres_schema.sql b/phpBB/db/schemas/postgres_schema.sql index 9c56c72479..e6561c6c08 100644 --- a/phpBB/db/schemas/postgres_schema.sql +++ b/phpBB/db/schemas/postgres_schema.sql @@ -276,7 +276,6 @@ CREATE TABLE phpbb_sessions ( session_user_id int4 DEFAULT '0' NOT NULL, session_start int4 DEFAULT '0' NOT NULL, session_time int4 DEFAULT '0' NOT NULL, - session_last_visit int4 DEFAULT '0' NOT NULL, session_ip char(8) DEFAULT '0' NOT NULL, session_page int4 DEFAULT '0' NOT NULL, session_logged_in int2 DEFAULT '0' NOT NULL, diff --git a/phpBB/includes/sessions.php b/phpBB/includes/sessions.php index 522911ee81..3c1f3814d0 100644 --- a/phpBB/includes/sessions.php +++ b/phpBB/includes/sessions.php @@ -152,7 +152,7 @@ function session_begin($user_id, $user_ip, $page_id, $session_length, $auto_crea // Create or update the session // $sql = "UPDATE " . SESSIONS_TABLE . " - SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_last_visit = " . $sessiondata['lastvisit'] . ", session_page = $page_id, session_logged_in = $login + SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login WHERE session_id = '" . $session_id . "' AND session_ip = '$user_ip'"; $result = $db->sql_query($sql); @@ -162,8 +162,8 @@ function session_begin($user_id, $user_ip, $page_id, $session_length, $auto_crea $session_id = md5(uniqid($user_ip)); $sql = "INSERT INTO " . SESSIONS_TABLE . " - (session_id, session_user_id, session_start, session_time, session_last_visit, session_ip, session_page, session_logged_in) - VALUES ('$session_id', $user_id, $current_time, $current_time, " . $sessiondata['lastvisit'] . ", '$user_ip', $page_id, $login)"; + (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in) + VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login)"; $result = $db->sql_query($sql); if(!$result) { @@ -182,10 +182,9 @@ function session_begin($user_id, $user_ip, $page_id, $session_length, $auto_crea } $sessiondata['autologinid'] = ( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : ""; + $sessiondata['userid'] = $user_id; } - $sessiondata['userid'] = $user_id; - $serialised_cookiedata = serialize($sessiondata); setcookie($cookiename . '_data', $serialised_cookiedata, ($current_time + 31536000), $cookiepath, $cookiedomain, $cookiesecure); setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure); @@ -392,19 +391,9 @@ function session_end($session_id, $user_id) { unset($sessiondata['autologinid']); } - - $sql = "UPDATE " . USERS_TABLE . " - SET user_lastvisit = " . time() . " - WHERE user_id = $user_id"; - $result = $db->sql_query($sql); - if (!$result) - { - message_die(CRITICAL_ERROR, "Couldn't reset user autologin key : session_end", "", __LINE__, __FILE__, $sql); - } - } - $sessiondata['userid'] = ANONYMOUS; + unset($sessiondata['userid']); $serialised_cookiedata = serialize($sessiondata); setcookie($cookiename . '_data', $serialised_cookiedata, ($current_time + 31536000), $cookiepath, $cookiedomain, $cookiesecure); diff --git a/phpBB/index.php b/phpBB/index.php index 7e875cf890..0df3c67e54 100644 --- a/phpBB/index.php +++ b/phpBB/index.php @@ -185,7 +185,7 @@ if($total_categories = $db->sql_numrows($q_categories)) FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p WHERE t.forum_id = f.forum_id AND p.post_id = t.topic_last_post_id - AND p.post_time > " . $userdata['session_last_visit'] . " + AND p.post_time > " . $userdata['user_lastvisit'] . " AND t.topic_moved_id = 0"; if(!$new_topic_ids = $db->sql_query($sql)) {