/** * Zjistit zakladani adresu systemu * V normalnich situacich se pouziva konstanta _url * @return string|bool false pri selhani, jinak URL vcetne koncoveho / */ function _getBaseUrl() { // zjistit cestu z url $path = parse_url($_SERVER['REQUEST_URI']); if (!isset($path['path'])) { return false; } $path = $path['path']; // najit posledni lomitko $lslash = strrpos($path, '/'); if ($lslash === false) { return false; } // uriznout nazev souboru if ($lslash + 1 !== strlen($path)) { $path = substr($path, 0, $lslash + 1); } return 'http://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != 80 ? $_SERVER['SERVER_PORT'] : '') . '/' . _parsePath($path . _indexroot); }
} /* ---- priprava promennych ---- */ if (!_loginright_adminfmanlimit) { $defdir = _upload_dir; } else { $defdir_subpath = _loginname . "/"; _extend('call', 'admin.fman.userdir', array('subpath' => &$defdir_subpath)); $defdir = _upload_dir . $defdir_subpath; } // adresar if (isset($_GET['dir'])) { $dir = str_replace("\\", "/", $_GET['dir']); if (mb_substr($dir, -1, 1) != "/") { $dir .= "/"; } $dir = _parsePath($dir); if (!_loginright_adminfmanplus and mb_substr_count($dir, "..") > 2 or mb_substr_count($dir, "..") > mb_substr_count($defdir, "..")) { $dir = $defdir; } if (!_loginright_adminfmanplus or _loginright_adminfmanlimit) { if (mb_substr($dir, 0, mb_strlen($defdir)) != $defdir) { $dir = $defdir; } } if (!@file_exists($dir) or !@is_dir($dir)) { $dir = $defdir; } } else { $dir = $defdir; } // vytvoreni vychoziho adresare
} else { $message = _formMessage(2, $_lang['admin.fman.msg.edit.failure']); } } else { $message = _formMessage(2, $_lang['admin.fman.msg.disallowedextension']); } break; // presun // presun case "move": $newdir = _arrayRemoveValue(explode("/", $_POST['param']), ""); $newdir = implode("/", $newdir); if (mb_substr($newdir, -1, 1) != "/") { $newdir .= "/"; } $newdir = _parsePath($dir . $newdir); if (_loginright_adminfmanplus or mb_substr($newdir, 0, mb_strlen($defdir)) == $defdir) { $done = 0; $total = 0; foreach ($_POST as $var => $val) { if ($var == "action" or $var == "param") { continue; } $val = _admin_cparam($val); if (@file_exists($dir . $val) and !@file_exists($newdir . $val) and !@is_dir($dir . $val) and _admin_issafefile($val)) { if (@rename($dir . $val, $newdir . $val)) { $done++; } } $total++; }