mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/17375] Ensure session garbage collection only happens for expired ones
PHPBB-17375
This commit is contained in:
parent
4038bb9dc3
commit
8497104bdb
1 changed files with 4 additions and 3 deletions
|
@ -964,8 +964,8 @@ class session
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get most recent session for each registered user to sync user last visit with it
|
* Get expired sessions for registered users, only most recent for each user
|
||||||
* Inner SELECT gets most recent sessions for each unique session_user_id
|
* Inner SELECT gets most recent expired sessions for unique session_user_id
|
||||||
* Outer SELECT gets data for them
|
* Outer SELECT gets data for them
|
||||||
*/
|
*/
|
||||||
$sql_select = 'SELECT s1.session_page, s1.session_user_id, s1.session_time AS recent_time
|
$sql_select = 'SELECT s1.session_page, s1.session_user_id, s1.session_time AS recent_time
|
||||||
|
@ -973,7 +973,8 @@ class session
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT session_user_id, MAX(session_time) AS recent_time
|
SELECT session_user_id, MAX(session_time) AS recent_time
|
||||||
FROM ' . SESSIONS_TABLE . '
|
FROM ' . SESSIONS_TABLE . '
|
||||||
WHERE session_user_id <> ' . ANONYMOUS . '
|
WHERE session_time < ' . ($this->time_now - (int) $config['session_length']) . '
|
||||||
|
AND session_user_id <> ' . ANONYMOUS . '
|
||||||
GROUP BY session_user_id
|
GROUP BY session_user_id
|
||||||
) AS s2
|
) AS s2
|
||||||
ON s1.session_user_id = s2.session_user_id
|
ON s1.session_user_id = s2.session_user_id
|
||||||
|
|
Loading…
Add table
Reference in a new issue