Part 1
- open the Admin Console login page
- confirm, that:
- either there is no adm_sid cookie
- or there is no records in the UserSessions/ UserSessionData tables related to session key from the adm_sid cookie
- replace $application->Run(); code in the /admin/index.php with the following code:
$application->StoreVar('name1', 'value1'); $application->Session->SaveData(); $application->StoreVar('name2', 'value2'); $application->Session->SaveData(); $application->Session->SetField('TimeZone', 'Asia/Hong_Kong'); $application->Session->SaveData(); $application->Session->SetField('Theme', '555'); $application->Session->SaveData();
- open the Debugger Report
- confirm, that SQLs, that interact with the session-related tables (see above) look like this (irrelevant values replaced with ...):
- setting 1st session data into related table:
INSERT INTO UserSessions (`PortalUserId`,`Language`,`Theme`,`GroupId`,`GroupList`,`IpAddress`,`SessionKey`,`LastAccessed`,`BrowserSignature`) VALUES ('...','...','999','...','...','...','790994740','...','...'); REPLACE INTO UserSessionData (SessionKey, VariableName, VariableValue) VALUES ('175175914', 'UserGroups', '14'),('175175914', 'user_id', '-2'),('175175914', 'curr_iso', 'USD'),('175175914', 'name1', 'value1'),('175175914', 'admin', '1'),('175175914', 'last_template', 'index.php|-login%3Am0--1--u-'),('175175914', 'last_template_popup', 'index.php|-login%3Am0--1--s-'),('175175914', 'last_url', '/d/in-portal.52x/admin/index.php?env=-login%3Am0--1--s-&next_template=index'),('175175914', 'last_env', '-login%3Am0--1--s-');
- setting 2nd session data into related table:
REPLACE INTO UserSessionData (SessionKey, VariableName, VariableValue) VALUES ('662547442', 'name2', 'value2');
- setting 3rd session data into related table:
UPDATE UserSessions SET TimeZone = 'Asia/Hong_Kong' WHERE SessionKey = '662547442';
- setting 4th session data into related table:
UPDATE UserSessions SET Theme = '555' WHERE SessionKey = '662547442';
Part 2
- restore contents of the /admin/index.php file
- delete all cookies (or at least delete adm_sid and adm_sid_live cookies)
- reload the page (you should be still on Admin Login page)
- add following code to the end of the \UsersEventHandler::OnAfterLogin method (file: core/units/users/users_event_handler.php):
$sql = 'SELECT * FROM ' . TABLE_PREFIX . 'UserSessions WHERE SessionKey = ' . $this->Conn->qstr($this->Application->GetSID()); $fields_hash = $this->Conn->GetRow($sql); echo '<pre>', print_r($fields_hash), '</pre>'; exit;
- perform login
- confirm, that following info will be displayed (irrelevant values replaced with ...):
Array ( [SessionKey] => 673153364 [LastAccessed] => ... [PortalUserId] => ... [Language] => ... [Theme] => 999 [GroupId] => ... [IpAddress] => ... [Status] => 1 [GroupList] => ... [TimeZone] => ... [BrowserSignature] => ... )