diff options
author | Paul S. Owen <psotfx@users.sourceforge.net> | 2001-12-14 03:33:42 +0000 |
---|---|---|
committer | Paul S. Owen <psotfx@users.sourceforge.net> | 2001-12-14 03:33:42 +0000 |
commit | f65c4179a151562ad02246107b83893d76421e15 (patch) | |
tree | 8bf052ec901ca783e8571e83f3fb62b6f704f38a | |
parent | 14bd7ab345fd5359db73cb3e4454b151cfdadb73 (diff) | |
download | forums-f65c4179a151562ad02246107b83893d76421e15.tar forums-f65c4179a151562ad02246107b83893d76421e15.tar.gz forums-f65c4179a151562ad02246107b83893d76421e15.tar.bz2 forums-f65c4179a151562ad02246107b83893d76421e15.tar.xz forums-f65c4179a151562ad02246107b83893d76421e15.zip |
Now with an added extra ... this one works, hopefully ... three days this was testing on phpbb.com with no problems ... I swear computers hate me
git-svn-id: file:///svn/phpbb/trunk@1568 89ea8834-ac86-4346-8a33-228a782c2dd0
-rw-r--r-- | phpBB/includes/sessions.php | 42 |
1 files changed, 10 insertions, 32 deletions
diff --git a/phpBB/includes/sessions.php b/phpBB/includes/sessions.php index 5cead9c2f5..2052f853c0 100644 --- a/phpBB/includes/sessions.php +++ b/phpBB/includes/sessions.php @@ -28,7 +28,6 @@ // function session_begin($user_id, $user_ip, $page_id, $session_length, $auto_create = 0, $enable_autologin = 0) { - global $db, $board_config; global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID; @@ -66,7 +65,7 @@ function session_begin($user_id, $user_ip, $page_id, $session_length, $auto_crea // what's needed is a session timer in the user table // + the user_lastvisit ... damn damn damn damn and blast // - $sql = "SELECT user_autologin_key, user_session_time, user_email + $sql = "SELECT user_password, user_session_time, user_email FROM " . USERS_TABLE . " WHERE user_id = $user_id"; $result = $db->sql_query($sql); @@ -77,16 +76,18 @@ function session_begin($user_id, $user_ip, $page_id, $session_length, $auto_crea $row = $db->sql_fetchrow($result); - $sessiondata['lastvisit'] = ( $row['user_session_time'] > 0 ) ? $row['user_session_time'] : $current_time; + $auto_login_key = $row['user_password']; if( $auto_create ) { if( isset($sessiondata['autologinid']) ) { - if( $sessiondata['autologinid'] == $row['user_autologin_key'] ) + if( $sessiondata['autologinid'] == $auto_login_key ) { $login = 1; - $enable_autologin = 1; + $enable_autologin = 1; + + $sessiondata['lastvisit'] = ( $row['user_session_time'] > 0 ) ? $row['user_session_time'] : $current_time; } else { @@ -181,28 +182,7 @@ function session_begin($user_id, $user_ip, $page_id, $session_length, $auto_crea if( $user_id != ANONYMOUS ) { - $autologin_sql = ""; - if( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) - { - mt_srand( (double) microtime() * 1000000); - $autologin_key = md5(uniqid(mt_rand())); - - $sessiondata['autologinid'] = $autologin_key; - $autologin_sql = $autologin_key; - } - else - { - $autologin_sql = ""; - } - - $sql_auto = "UPDATE " . USERS_TABLE . " - SET user_lastvisit = " . $sessiondata['lastvisit'] . ", user_session_time = $current_time, user_session_page = $page_id, user_autologin_key ='$autologin_id' - WHERE user_id = $user_id"; - $result = $db->sql_query($sql_auto); - if(!$result) - { - message_die(CRITICAL_ERROR, "Couldn't update users autologin key : session_begin", "", __LINE__, __FILE__, $sql); - } + $sessiondata['autologinid'] = ( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : ""; } $sessiondata['userid'] = $user_id; @@ -411,17 +391,15 @@ function session_end($session_id, $user_id) // if( $user_id != ANONYMOUS ) { - $autologin_sql = ""; - if( isset($sessiondata['autologinid']) && $sessionmethod = SESSION_METHOD_COOKIE ) + if( isset($sessiondata['autologinid']) && $sessionmethod == SESSION_METHOD_COOKIE ) { unset($sessiondata['autologinid']); - $autologin_sql = ", user_autologin_key = ''"; } $sql = "UPDATE " . USERS_TABLE . " - SET user_lastvisit = " . time() . $autologin_sql . " + SET user_lastvisit = " . time() . " WHERE user_id = $user_id"; - $result = $db->sql_query($sql, END_TRANSACTION); + $result = $db->sql_query($sql); if (!$result) { message_die(CRITICAL_ERROR, "Couldn't reset user autologin key : session_end", "", __LINE__, __FILE__, $sql); |