/** * @group IL_Init */ public function testBasicSessionBehaviour() { global $ilUser; include_once "./Services/Authentication/classes/class.ilSession.php"; $result = ""; ilSession::_writeData("123456", "Testdata"); if (ilSession::_exists("123456")) { $result .= "exists-"; } if (ilSession::_getData("123456") == "Testdata") { $result .= "write-get-"; } $duplicate = ilSession::_duplicate("123456"); if (ilSession::_getData($duplicate) == "Testdata") { $result .= "duplicate-"; } ilSession::_destroy("123456"); if (!ilSession::_exists("123456")) { $result .= "destroy-"; } ilSession::_destroyExpiredSessions(); if (ilSession::_exists($duplicate)) { $result .= "destroyExp-"; } ilSession::_destroyByUserId($ilUser->getId()); if (!ilSession::_exists($duplicate)) { $result .= "destroyByUser-"; } $this->assertEquals("exists-write-get-duplicate-destroy-destroyExp-destroyByUser-", $result); }
/** * Duplicate session * * @param string session id * @return string new session id */ static function _duplicate($a_session_id) { global $ilDB; // Create new session id $new_session = $a_session_id; do { $new_session = md5($new_session); $q = "SELECT * FROM usr_session WHERE " . "session_id = " . $ilDB->quote($new_session, "text"); $res = $ilDB->query($q); } while ($ilDB->fetchAssoc($res)); $query = "SELECT * FROM usr_session " . "WHERE session_id = " . $ilDB->quote($a_session_id, "text"); $res = $ilDB->query($query); while ($row = $ilDB->fetchObject($res)) { ilSession::_writeData($new_session, $row->data); return $new_session; } return false; }
/** * Writes serialized session data to the database. * * @param integer $session_id session id * @param string $data session data */ public function write($session_id, $data) { return ilSession::_writeData($session_id, $data); }