• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/site_checker.php
  • Класс: CSiteCheckerTest
  • Вызов: CSiteCheckerTest::CommonTest
static function CommonTest()
{
	if (
		defined('BX_CRONTAB')
		|| (defined('CHK_EVENT') && CHK_EVENT === true)
		|| (!isset($_SERVER['HTTP_HOST']) || !$_SERVER['HTTP_HOST'])
	) // can't get real HTTP server vars from cron
	{
		return "CSiteCheckerTest::CommonTest();";
	}

	if (
		($ntlm_varname = COption::GetOptionString('ldap', 'ntlm_varname', 'REMOTE_USER'))
		&& ($user = trim($_SERVER[$ntlm_varname] ?? ''))
	)
	{
		return "CSiteCheckerTest::CommonTest();";
	} // Server NTLM is enabled, no way to connect through a socket

	IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/admin/site_checker.php');

	$step = 0;
	$ar = null;
	while(true)
	{
		$oTest = new CSiteCheckerTest($step, $fast = 1);
		if ($ar !== null)
		{
			$oTest->arTestVars = $ar;
		}
		$oTest->ssl =
			(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')
			|| (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
			|| (isset($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"] == 443)
		;

		if (preg_match('#^(.+):([0-9]+)$#', $_SERVER['HTTP_HOST'], $regs))
		{
			$oTest->host = $regs[1];
			$oTest->port = $regs[2];
			if ($oTest->port == 443)
				$oTest->ssl = true;
		}
		else
		{
			$oTest->host = $_SERVER['HTTP_HOST'];
			$oTest->port = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] ? $_SERVER['SERVER_PORT'] : ($oTest->ssl ? 443 : 80);
		}
		$oTest->Start();
		if ($oTest->result === false)
		{
			$error = Array(
				"MESSAGE" =>
					(
						IsModuleInstalled('intranet') ?
						GetMessage("MAIN_SC_GOT_ERRORS", array('#LINK#' => "/bitrix/admin/site_checker.php?lang=".LANGUAGE_ID."&express_test=Y")) :
						GetMessage("MAIN_SC_SITE_GOT_ERRORS", array('#LINK#' => "/bitrix/admin/site_checker.php?lang=".LANGUAGE_ID."&start_test=Y"))
					),
				"TAG" => "SITE_CHECKER",
				"MODULE_ID" => "MAIN",
				'NOTIFY_TYPE' => CAdminNotify::TYPE_NORMAL
			);
			CAdminNotify::Add($error);
			break;
		}

		if ($oTest->percent >= 100)
		{
			break;
		}

		$step++;

		$ar = $oTest->arTestVars;
	}

	$REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
	$HTTP_USER_AGENT= $_SERVER['HTTP_USER_AGENT'];
	$_SERVER['REMOTE_ADDR'] = '-';
	$_SERVER['HTTP_USER_AGENT'] = '-';
	CEventLog::Add(array(
		"SEVERITY" => "WARNING",
		"AUDIT_TYPE_ID" => isset($oTest->arTestVars['site_checker_success']) && $oTest->arTestVars['site_checker_success'] == 'Y' ? 'SITE_CHECKER_SUCCESS' : 'SITE_CHECKER_ERROR',
		"MODULE_ID" => "main",
		"ITEM_ID" => 'CSiteCheckerTest::CommonTest();',
		"URL" => '-',
		"DESCRIPTION" => '',
	));
	$_SERVER['REMOTE_ADDR'] = $REMOTE_ADDR;
	$_SERVER['HTTP_USER_AGENT'] = $HTTP_USER_AGENT;

	return "CSiteCheckerTest::CommonTest();";
}