• Модуль: security
  • Путь к файлу: ~/bitrix/modules/security/classes/general/session_db.php
  • Класс: CSecuritySessionDB
  • Вызов: CSecuritySessionDB::read
static function read($id)
{
	if (!self::isValidId($id))
		return "";

	if (!self::$isReadOnly && !SessionTable::lock($id, 60/*TODO: timelimit from php.ini?*/))
		CSecuritySession::triggerFatalError('Unable to get session lock within 60 seconds.');

	self::$sessionId = $id;
	$sessionRow = SessionTable::getRow(array(
		'select' => array('SESSION_DATA'),
		'filter' => array('=SESSION_ID' => $id)
	));

	if ($sessionRow && isset($sessionRow['SESSION_DATA']))
	{
		return base64_decode($sessionRow['SESSION_DATA']);
	}
	else
	{
		if (!self::$hasFailedRead)
		{
			AddEventHandler("main", "OnPageStart", array("CSecuritySession", "UpdateSessID"));
			self::$hasFailedRead = true;
		}
	}

	return '';
}