public static function change($session_id, $pass = null) { $email = Session::getEmail(); $session_id_old = Session::initId(); if (!$email) { //Текущая сессия не авторизированная $email = Session::getEmail($session_id); if ($email) { //А вот новая сессия аторизированна, значит нужно объединить сессии и грохнуть старую $newans = Session::recivenews(); //Нужно это всё записать в базу данных для сессии 1 Session::writeNews($newans['news'], $session_id); //Теперь старую сессию нужно удалить полностью //Надо подчистить 2 таблицы if ($session_id_old) { //хз бывает ли такое что его нет $conf = Config::get(); $tables = $conf['session']['change_session_tables']; //Массив с таблицами в которых нужно изменить session_id неавторизированного пользователя, при авторизации $db = Db::pdo(); Each::forr($tables, function &() use($session_id_old, $session_id, &$db) { $sql = 'UPDATE images SET session_id = ? WHERE session_id = ?;'; $stmt = $db->prepare($sql); $stmt->execute(array($session_id, $session_id_old)); $r = null; return $r; }); $sql = 'DELETE from ses_records where session_id=?'; $stmt = $db->prepare($sql); $stmt->execute(array($session_id_old)); $sql = 'DELETE from ses_sessions where session_id=?'; $stmt = $db->prepare($sql); $stmt->execute(array($session_id_old)); } } } global $infra_session_data; $infra_session_data = array(); if (is_null($pass)) { $user = Session::getUser($session_id); $pass = md5($user['password']); } View::setCookie(Session::getName('pass'), $pass); View::setCookie(Session::getName('id'), $session_id); View::setCookie(Session::getName('time'), 1); Session::syncNow(); }