1) { return round($result / 1048576, 1)." MB"; } elseif($result / 1024 > 1) { return round($result / 1024, 0)." kB"; } else { return round($result, 0)." bytes"; } } function format_date ($filename) { return date("d-m-Y, H:i", filemtime($filename)); } function file_extension($filename) { $path_info = pathinfo($filename); return $path_info["extension"]; } function file_icon($filename) { $ext = strtolower(file_extension($filename)); if (preg_match("/(jpg)|(jpeg)|(png)|(bmp)|(gif)|(ico){1}$/", $ext)) return "\"[image]\""; if (preg_match("/(txt)|(htm)|(html)|(js)|(php)|(css)|(cgi){1}$/", $ext)) return "\"[text]\""; if (preg_match("/(zip)|(rar)|(tar)|(gz){1}$/", $ext)) return "\"[compressed]\""; if (preg_match("/(enc){1}$/", $ext)) return "\"[encrypted]\""; else return "\"[unknown]\""; } function str_replace_case_insensitive($search, $replace, $subject) { $result = ""; $i=0; while($i= 0) { $result[0] += $handlesize[0]; $result[1] += $handlesize[1]; $result[2] += $handlesize[2]; } else { return -1; } } } } closedir($handle); } return $result; } function recursive_remove_directory($directory, $empty=FALSE) { if(substr($directory,-1) == "/") { $directory = substr($directory,0,-1); } if(!file_exists($directory) || !is_dir($directory)) { return FALSE; } elseif(is_readable($directory)) { $handle = opendir($directory); while (FALSE !== ($item = readdir($handle))) { if($item != "." && $item != "..") { $path = $directory."/".$item; if(is_dir($path)) { recursive_remove_directory($path); } else { unlink($path); } } } closedir($handle); if($empty == FALSE) { if(!rmdir($directory)) { return FALSE; } } } return TRUE; } function print_list_td ($text, $align) { echo "".$text.""; echo "  "; } function print_parent_dir ($dir) { echo ""; print_list_td ("\"[back]\"", "left"); print_list_td ("Back", "left"); echo ""; } function print_parent_dir_compact ($dir) { echo "\"[back]\" "; echo "Back

"; } function print_dir ($path, $searchresult) { echo ""; print_list_td ("\"[dir]\"", "left"); print_list_td ("".$searchresult."", "left"); print_list_td (format_date($path.$searchresult), "left"); print_list_td ("--", "right"); print_list_td ("Info", "left"); print_list_td ("Rename", "left"); print_list_td ("Delete", "left"); echo ""; } function print_dir_compact ($path, $searchresult) { echo "\"[dir]\" "; echo "".$searchresult."
"; echo "Info   "; echo "Rename   "; echo "Delete

"; } function print_file ($path, $searchresult) { echo ""; print_list_td (file_icon($searchresult), "left"); print_list_td ("".$searchresult."", "left"); print_list_td (format_date($path.$searchresult), "left"); print_list_td (format_size(filesize($path.$searchresult)), "right"); print_list_td ("Info", "left"); print_list_td ("Rename", "left"); print_list_td ("Delete", "left"); //$ext = strtolower(file_extension($searchresult)); //if (preg_match("/(txt)|(htm)|(html)|(js)|(php)|(css)|(cgi){1}$/", $ext)) print_list_td ("Edit", "left"); print_list_td ("Edit", "left"); print_list_td ("Crypt", "left"); echo ""; } function print_file_compact ($path, $searchresult) { echo file_icon($searchresult)." "; echo "".$searchresult."
"; echo "Info   "; echo "Rename   "; echo "Delete   "; //$ext = strtolower(file_extension($searchresult)); //if (preg_match("/(txt)|(htm)|(html)|(js)|(php)|(css)|(cgi){1}$/", $ext)) echo "Edit"; echo "Edit   "; echo "Crypt"; echo "

"; } function print_input_form ($text, $type, $name, $value, $button, $action, $path) { echo "
"; echo $text." "; echo "   Back"; echo "
"; } function print_login_form ($text, $type, $name, $value, $button, $action) { echo "
"; echo $text." "; echo " "; echo ""; echo "
"; } function print_upload_form ($text, $name, $button, $action, $path) { echo "
"; echo $text." "; echo "   Back"; echo "
"; } function print_confirmation_form ($text, $button, $action, $path) { echo "
"; echo $text.""; echo "   Back"; echo "
"; } function print_edit_form ($content, $filename, $action, $path) { echo "
"; echo $filename."

"; echo "

"; echo ""; echo "   Back"; echo "
"; } function print_redirect ($address) { echo "..."; echo ""; } echo "

Files

"; if (isset($_SESSION["input_password"])) { $viewtype = $_SESSION["select_viewtype"]; if ($cmd == "save") { $content = $_POST["input_editor"]; $content = stripslashes($content); write_file ($path.$filename, $content); print_redirect($_SERVER["PHP_SELF"]."?path=".$path); } elseif ($cmd == "create") { print_input_form ("File to create: ", "text", "input_newfilename", "", "OK", $_SERVER["PHP_SELF"]."?cmd=create_execute&path=".$path, $path); } elseif ($cmd == "create_execute") { $filename = $_POST["input_newfilename"]; if (preg_match("/[^a-zA-Z0-9 ()-._]/", $filename)) { print_input_form ("File to create: ", "text", "input_newfilename", "", "OK", $_SERVER["PHP_SELF"]."?cmd=create_execute&path=".$path, $path); echo "Filename contains invalid characters."; } elseif (file_exists($path.$filename)) { create_file ($path."TMP"); print_confirmation_form ("Filename ".$filename." already exists. Overwrite?", "OK", $_SERVER["PHP_SELF"]."?cmd=overwrite&path=".$path."&filename=".$filename, $path); } else { create_file ($path.$filename); print_redirect($_SERVER["PHP_SELF"]."?path=".$path); } } elseif ($cmd == "createdir") { print_input_form ("Directory to create: ", "text", "input_newdirname", "", "OK", $_SERVER["PHP_SELF"]."?cmd=createdir_execute&path=".$path, $path); } elseif ($cmd == "createdir_execute") { $filename = $_POST["input_newdirname"]; if (preg_match("/[^a-zA-Z0-9 ()-._]/", $filename)) { print_input_form ("Directory to create: ", "text", "input_newdirname", "", "OK", $_SERVER["PHP_SELF"]."?cmd=createdir_execute&path=".$path, $path); echo "Filename contains invalid characters."; } elseif (file_exists($path.$filename)) { mkdir($path."TMP", 0777); chmod ($path.$filename, 0777); print_confirmation_form ("Directory name ".$filename." already exists. Overwrite?", "OK", $_SERVER["PHP_SELF"]."?cmd=overwrite&path=".$path."&filename=".$filename, $path); } else { mkdir($path.$filename, 0777); chmod ($path.$filename, 0777); print_redirect($_SERVER["PHP_SELF"]."?path=".$path); } } elseif ($cmd == "upload") { print_upload_form ("File to upload: ", "userfile", "OK", $_SERVER["PHP_SELF"]."?cmd=upload_execute&path=".$path, $path); } elseif ($cmd == "upload_execute") { $userfile_name = $_FILES["userfile"]["name"]; $userfile = $_FILES["userfile"]["tmp_name"]; if (preg_match("/[^a-zA-Z0-9 ()-._]/", $userfile_name)) { print_upload_form ("File to upload: ", "userfile", "OK", $_SERVER["PHP_SELF"]."?cmd=upload_execute&path=".$path, $path); echo "Filename contains invalid characters."; } elseif ($userfile_name == "") { print_upload_form ("File to upload: ", "userfile", "OK", $_SERVER["PHP_SELF"]."?cmd=upload_execute&path=".$path, $path); echo "No file selected."; } elseif (file_exists($path.$userfile_name)) { @move_uploaded_file($userfile, $path."TMP") or die ("Error uploading ".$userfile_name."."); chmod ($path."TMP", 0777); print_confirmation_form ("Filename ".$userfile_name." already exists. Overwrite?", "OK", $_SERVER["PHP_SELF"]."?cmd=overwrite&path=".$path."&filename=".$userfile_name, $path); } else { @move_uploaded_file($userfile, $path.$userfile_name) or die ("Error uploading ".$userfile_name."."); chmod ($path.$userfile_name, 0777); print_redirect($_SERVER["PHP_SELF"]."?path=".$path); } } elseif ($cmd == "changedir") { print_input_form ("Change to directory: ", "text", "input_changedir", $path, "OK", $_SERVER["PHP_SELF"]."?cmd=changedir_execute&path=".$path, $path); } elseif ($cmd == "changedir_execute") { $path = $_POST["input_changedir"]; if (is_dir($path)) { print_redirect($_SERVER["PHP_SELF"]."?path=".$path); } else { print_input_form ("Change to directory: ", "text", "input_changedir", $path, "OK", $_SERVER["PHP_SELF"]."?cmd=changedir_execute&path=".$path, $path); echo "Invalid directory."; } } elseif ($cmd == "opendir") { if (is_dir($path)) { print_redirect($_SERVER["PHP_SELF"]."?path=".$path); } } elseif ($cmd == "logout") { session_unset(); session_destroy(); print_redirect($_SERVER["PHP_SELF"]); } elseif ($cmd == "edit") { if (file_exists($path.$filename)) { if (filesize($path.$filename) == 0) { $content = ""; print_edit_form ($content, $filename, $_SERVER["PHP_SELF"]."?cmd=save&path=".$path."&filename=".$filename, $path); } else { $content = read_file($path.$filename); $content = str_replace_case_insensitive ("","<*textarea>", $content); print_edit_form ($content, $filename, $_SERVER["PHP_SELF"]."?cmd=save&path=".$path."&filename=".$filename, $path); } } } elseif ($cmd == "overwrite") { if (is_dir ($path.$filename)) { @rmdir($path.$filename); } else { @unlink($path.$filename); } rename($path."TMP", $path.$filename); chmod ($path.$filename, 0777); print_redirect($_SERVER["PHP_SELF"]."?path=".$path); } elseif ($cmd == "rename") { print_input_form ("Rename ".$filename." to: ", "text", "input_renamefilename", "", "OK", $_SERVER["PHP_SELF"]."?cmd=rename_execute&path=".$path."&filename=".$filename, $path); } elseif ($cmd == "rename_execute") { $newfilename = $_POST["input_renamefilename"]; if (preg_match("/[^a-zA-Z0-9 ()-._]/", $newfilename)) { print_input_form ("Rename ".$filename." to: ", "text", "input_renamefilename", "", "OK", $_SERVER["PHP_SELF"]."?cmd=rename_execute&path=".$path."&filename=".$filename, $path); echo "Filename contains invalid characters."; } elseif (file_exists($path.$newfilename)) { print_input_form ("Rename ".$filename." to: ", "text", "input_renamefilename", "", "OK", $_SERVER["PHP_SELF"]."?cmd=rename_execute&path=".$path."&filename=".$filename, $path); echo "Filename ".$newfilename." already exists."; } else { if (rename($path.$filename, $path.$newfilename)) { print_redirect($_SERVER["PHP_SELF"]."?path=".$path); } } } elseif ($cmd == "del") { print_confirmation_form ("Delete ".$filename."? ", "OK", $_SERVER["PHP_SELF"]."?cmd=del_execute&path=".$path."&filename=".$filename, $path); } elseif ($cmd == "del_execute") { if (is_dir ($path.$filename)) { @rmdir($path.$filename); //Remove entire dir and everthing inside it //recursive_remove_directory($path.$filename); } else { @unlink($path.$filename); } print_redirect($_SERVER["PHP_SELF"]."?path=".$path); } elseif ($cmd == "crypt") { if (file_exists($path.$filename)) { if (filesize($path.$filename) == 0) { $content = ""; } else { $content = read_file($path.$filename); $content = encrypt($_SESSION["input_password"], $content); } } write_file ($path.$filename, $content); if (file_extension($path.$filename) != "enc") { rename($path.$filename, $path.$filename.".enc"); } else { rename($path.$filename, $path.substr($filename, 0, strlen($filename) - 4)); } print_redirect($_SERVER["PHP_SELF"]."?path=".$path); } elseif ($cmd == "info") { $fileinfo = recursive_directory_info($path.$filename); echo "Name: ".$filename."
"; echo "Location: ".$path."
"; if (is_file($path.$filename)) { echo "Type: File
"; echo "Size: ".format_size(filesize($path.$filename))." (".filesize($path.$filename)." bytes)
"; } else { echo "Type: Directory
"; echo "Size: ".format_size($fileinfo[0])." (".$fileinfo[0]." bytes)
"; echo "Content: ".$fileinfo[1]." directories, ".$fileinfo[2]." files
"; } echo "Date: ".date("d-m-Y, H:i", filemtime($path.$filename))."
"; echo "Owner: ".fileowner($path.$filename)."
"; echo "Group: ".filegroup($path.$filename)."
"; echo "Permissions: ".substr(sprintf('%o', fileperms($path.$filename)), -3)."

"; echo "Back"; } elseif ($cmd == "phpinfo") { phpinfo(); } else { if (is_dir($path)) { if (file_exists($path."TMP")) { @unlink($path."TMP"); } echo "Create file   "; echo "Upload file   "; echo "Create directory   "; echo "Change directory   "; echo "Logout

"; echo $path."

"; $handle = opendir($path); while (false != ($file = readdir($handle))) { if ($file != "." && $file != "..") { $searchresults[] = $file; } } closedir($handle); $dirs = 0; $files = 0; $totalsize = 0; if(!empty($searchresults)){ natcasesort($searchresults); if ($viewtype == 0) { echo ""; if ($path != $basedir) print_parent_dir($path.$searchresult); foreach ($searchresults as $searchresult) { if (is_dir($path.$searchresult)) { print_dir($path, $searchresult); $dirs ++; } else { print_file($path, $searchresult); $files ++; $totalsize = $totalsize + filesize($path.$searchresult); } } echo "

"; } else { if ($path != $basedir) print_parent_dir_compact($path.$searchresult); foreach ($searchresults as $searchresult) { if (is_dir($path.$searchresult)) { print_dir_compact($path, $searchresult); $dirs ++; } else { print_file_compact($path, $searchresult); $files ++; $totalsize = $totalsize + filesize($path.$searchresult); } } } echo $dirs. " directories, ".$files." files, ".format_size($totalsize); } else { if ($viewtype == 0) { echo ""; if ($path != $basedir) print_parent_dir($path.$searchresult); echo "

"; echo "Empty directory."; } else { if ($path != $basedir) print_parent_dir_compact($path.$searchresult); echo "Empty directory."; } } } else { echo "Invalid directory."; } } } else { if (!empty($_POST)) { if ($password == crypt($_POST["input_password"], $password)) { session_register("input_password"); session_register("select_viewtype"); print_redirect($_SERVER["PHP_SELF"]."?cmd=none"); } else { print_login_form ("Password: ", "password", "input_password", "", "Login", $_SERVER["PHP_SELF"]); echo "Invalid password."; } } else { print_login_form ("Password: ", "password", "input_password", "", "Login", $_SERVER["PHP_SELF"]); } } ?>