diff --git a/libraries/cms/application/cms.php b/libraries/cms/application/cms.php index 44a43a68b53d7..180feb84aeb9c 100644 --- a/libraries/cms/application/cms.php +++ b/libraries/cms/application/cms.php @@ -180,27 +180,31 @@ public function checkSession() { $query->clear(); - if ($session->isNew()) - { - $query->insert($db->quoteName('#__session')) - ->columns($db->quoteName('session_id') . ', ' . $db->quoteName('client_id') . ', ' . $db->quoteName('time')) - ->values($db->quote($session->getId()) . ', ' . (int) $this->getClientId() . ', ' . $db->quote((int) time())); - $db->setQuery($query); - } - else - { - $query->insert($db->quoteName('#__session')) - ->columns( - $db->quoteName('session_id') . ', ' . $db->quoteName('client_id') . ', ' . $db->quoteName('guest') . ', ' . - $db->quoteName('time') . ', ' . $db->quoteName('userid') . ', ' . $db->quoteName('username') - ) - ->values( - $db->quote($session->getId()) . ', ' . (int) $this->getClientId() . ', ' . (int) $user->get('guest') . ', ' . - $db->quote((int) $session->get('session.timer.start')) . ', ' . (int) $user->get('id') . ', ' . $db->quote($user->get('username')) - ); - - $db->setQuery($query); - } + $time = $session->isNew() ? time() : $session->get('session.timer.start'); + + $columns = array( + $db->quoteName('session_id'), + $db->quoteName('client_id'), + $db->quoteName('guest'), + $db->quoteName('time'), + $db->quoteName('userid'), + $db->quoteName('username'), + ); + + $values = array( + $db->quote($session->getId()), + (int) $this->getClientId(), + (int) $user->guest, + $db->quote((int) $time), + (int) $user->id, + $db->quote($user->username), + ); + + $query->insert($db->quoteName('#__session')) + ->columns($columns) + ->values(implode(', ', $values)); + + $db->setQuery($query); // If the insert failed, exit the application. try