From 29e91ef7243e3ec1bf86b77b513fa20c68101dc8 Mon Sep 17 00:00:00 2001 From: moodler Date: Sat, 23 Apr 2005 15:02:00 +0000 Subject: [PATCH] Embedding the session checking a little better --- lang/en/error.php | 1 + lib/moodlelib.php | 19 +++++++++++++++++++ lib/setup.php | 20 -------------------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/lang/en/error.php b/lang/en/error.php index 451f0108b82..fb0f243b6b9 100755 --- a/lang/en/error.php +++ b/lang/en/error.php @@ -16,6 +16,7 @@ $string['notavailable'] = 'That is not currently available'; $string['onlyeditown'] = 'You can only edit your own information'; $string['processingstops'] = 'Processing stops here. Remaining records ignored.'; $string['restricteduser'] = 'Sorry, but your current account \"$a\" is restricted from doing that.'; +$strinf['sessionerroruser'] = 'Serious session error occured, please login again.'; $string['sessionipnomatch'] = 'Sorry, but your IP number seems to have changed from when you first logged in. This security feature prevents crackers stealing your identity while logged in to this site. Normal users should not be seeing this message - please ask the site administrator for help.'; $string['unknowncourse'] = 'Unknown course named \"$a\"'; $string['usernotaddederror'] = 'User \"$a\" not added - unknown error'; diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 8699eedf05f..51d8a685d11 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -6068,5 +6068,24 @@ function remove_dir($dir, $content_only=false) { return rmdir($dir); } +function report_session_error() { + global $CFG; + if (empty($CFG->lang)) { + $CFG->lang = "en"; + } + moodle_setlocale(); + //clear session cookies + setcookie('MoodleSession'.$CFG->sessioncookie, '', time() - 3600, '/'); + setcookie('MoodleSessionTest'.$CFG->sessioncookie, '', time() - 3600, '/'); + //increment database error counters + if (isset($CFG->session_error_counter)) { + set_config('session_error_counter', 1 + $CFG->session_error_counter); + } else { + set_config('session_error_counter', 1); + } + redirect($CFG->wwwroot, get_string('sessionerroruser', 'error'), 5); +} + + // vim:autoindent:expandtab:shiftwidth=4:tabstop=4:tw=140: ?> diff --git a/lib/setup.php b/lib/setup.php index 395f501abdf..d96a2eaf12b 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -342,26 +342,6 @@ global $THEME; theme_setup(); // Sets up theme global variables /// now do a session test to prevent random user switching - function report_session_error() { - global $CFG; - if (empty($CFG->lang)) { - $CFG->lang = "en"; - } - moodle_setlocale(); - //clear session cookies - setcookie('MoodleSession'.$CFG->sessioncookie, '', time() - 3600, '/'); - setcookie('MoodleSessionTest'.$CFG->sessioncookie, '', time() - 3600, '/'); - //increment database error counters - if (!isset($CFG->session_error_counter)) { - set_config('session_error_counter', 1); - } else { - set_config('session_error_counter', 1 + $CFG->session_error_counter); - } - //TODO: move string to lang/en/error.php - $strsessionerroruser = 'Serious session error occured, please login again.'; - redirect($CFG->wwwroot, $strsessionerroruser, 5); - } - if ($SESSION != NULL) { if (empty($_COOKIE['MoodleSessionTest'.$CFG->sessioncookie])) { report_session_error();