From 3dc7c62559466269e7574f85a8647a302e0dbfd9 Mon Sep 17 00:00:00 2001 From: Matt Pass Date: Wed, 1 Aug 2012 20:28:57 +0100 Subject: [PATCH] Another huge path realignment & many improvements No need to conditionally define $file on action/contents $file is now either existing or new filename Converted to fullpath and fileLoc and fileName established from this Extension checking on fileName now not full path ($file) Variable reassignment, fileName now used much more Path realignments in many areas Big chunks of code removed, simplified or made singularly available Better error handling & code optimisation/shortening --- lib/file-control.php | 124 ++++++++++++++++++------------------------- 1 file changed, 53 insertions(+), 71 deletions(-) diff --git a/lib/file-control.php b/lib/file-control.php index 416959a..5ebdd83 100644 --- a/lib/file-control.php +++ b/lib/file-control.php @@ -1,14 +1,19 @@ 0||strpos($file,".jpeg")>0||strpos($file,".gif")>0||strpos($file,".png")>0) {$fileType="image";}; + if (strpos($fileName,".jpg")>0||strpos($fileName,".jpeg")>0||strpos($fileName,".gif")>0||strpos($fileName,".png")>0) {$fileType="image";}; if ($fileType=="text") { $bannedFile=false; for ($i=0;$ifileType="text";top.ICEcoder.rightClickedFile=top.ICEcoder.thisFileFolderLink=\''.$file.'\';'; - echo "top.ICEcoder.shortURL = '".str_replace($docRoot,"",str_replace("|","/",$file))."';"; + if (file_exists($file) && ($_SESSION['userLevel'] > 0 || ($_SESSION['userLevel'] == 0 && !$bannedFile))) { + echo ''; $loadedFile = file_get_contents($file); echo '","",htmlentities($loadedFile)).''; + } else if (!file_exists($file)) { + echo ''; + echo ''; } else { echo ''; echo ''; @@ -40,74 +47,66 @@ if ($_GET['action']=="load") { }; if ($fileType=="image") { - echo ''; + echo ''; }; }; // If we're due to add a new folder... if ($_GET['action']=="newFolder") { - if (strpos($file,$docRoot)===false) {$file=$docRoot.$iceRoot.$file;}; - $fileName = substr($file,strrpos($file,"/")+1); - $fileLoc = substr(str_replace($docRoot,"",$file),0,strrpos(str_replace($docRoot,"",$file),"/")); - if ($_SESSION['userLevel'] > 0) { + if (is_writable($docRoot.$fileLoc) && $_SESSION['userLevel'] > 0) { mkdir($file, 0705); // Reload file manager - if ($fileLoc=="") {$fileLoc = "/";}; - echo ''; + echo ''; } else { - if (!is_writable($file)) { - echo ""; + echo "'; + echo "Sorry, you need to be logged in to add folders"; } - echo ''; + echo "');action='nothing';"; } + echo ''; } -// If we're due to rename a file... +// If we're due to rename a file/folder... if ($_GET['action']=="rename") { - if ($_SESSION['userLevel'] > 0 && is_writable($docRoot.$iceRoot.str_replace("|","/",$_GET['oldFileName']))) { - rename($docRoot.$iceRoot.str_replace("|","/",strClean($_GET['oldFileName'])),$docRoot.$iceRoot.str_replace("|","/",$file)); + if ($_SESSION['userLevel'] > 0 && is_writable($docRoot.$iceRoot.str_replace("|","/",strClean($_GET['oldFileName'])))) { + rename($docRoot.$iceRoot.str_replace("|","/",strClean($_GET['oldFileName'])),$docRoot.$fileLoc."/".$fileName); // Reload file manager - $fileName = substr($file,strrpos($file,"/")+1); - $fileLoc = substr($file,0,strrpos($file,"/")); - if ($fileLoc=="") {$fileLoc = "/";}; - echo ''; + echo ''; } else { if (!is_writable($_GET['oldFileName'])) { echo ""; } else { echo ''; } - echo ''; + echo ''; } + echo ''; } // If we're due to change permissions on a file/folder... if ($_GET['action']=="perms") { - if (strpos($file,$docRoot)===false) {$file=$docRoot.$iceRoot.$file;}; - $fileName = substr($file,strrpos($file,"/")+1); - $fileLoc = substr(str_replace($docRoot,"",$file),0,strrpos(str_replace($docRoot,"",$file),"/")); if ($_SESSION['userLevel'] > 0 && is_writable($file)) { chmod($file,octdec(numClean($_GET['perms']))); // Reload file manager - $fileName = substr($file,strrpos($file,"/")+1); - $fileLoc = substr($file,0,strrpos($file,"/")); - if ($fileLoc=="") {$fileLoc = "/";}; - echo ''; + echo ''; } else { if (!is_writable($file)) { echo ""; } else { echo ''; } - echo ''; + echo ''; } + echo ''; } // If we're due to delete a file... if ($_GET['action']=="delete") { - if (strpos($file,$docRoot)===false) {$file=$docRoot.$iceRoot.$file;}; if ($_SESSION['userLevel'] > 0) { $filesArray = split(";",$file); // May contain more than one file here for ($i=0;$i<=count($filesArray)-1;$i++) { @@ -118,14 +117,12 @@ if ($_GET['action']=="delete") { unlink($iceRoot.$filesArray[$i]); } // Reload file manager - $fileName = substr($file,strrpos($file,"/")+1); - $fileLoc = substr($file,0,strrpos($file,"/")); - if ($fileLoc=="") {$fileLoc = "/";}; - echo ''; + echo ''; } else { echo ""; } - echo ''; + echo ''; } } else { if (!is_writable($iceRoot.$filesArray[$i])) { @@ -133,8 +130,9 @@ if ($_GET['action']=="delete") { } else { echo ''; } - echo ''; + echo ''; } + echo ''; } // The function to recursively remove folders & files @@ -156,13 +154,6 @@ if ($_GET['action']=="save") { // on the form posting via a reload, save the file if (isset($_POST['contents'])) { if ($_SESSION['userLevel'] > 0) { - if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") { - $file = strClean($_POST['newFileName']); - } - if (strpos($file,$docRoot)===false) {$file=$docRoot.$iceRoot.$file;}; - $fileName = substr($file,strrpos($file,"/")+1); - $fileLoc = substr(str_replace($docRoot,"",$file),0,strrpos(str_replace($docRoot,"",$file),"/")); - if ((file_exists($file) && is_writable($file)) || isset($_POST['newFileName']) && $_POST['newFileName']!="") { if (filemtime($file)==$_GET['fileMDT']||!(isset($_GET['fileMDT']))) { $fh = fopen($file, 'w') or die("Sorry, cannot save"); @@ -171,10 +162,9 @@ if ($_GET['action']=="save") { clearstatcache(); echo ''; // Reload file manager & rename tab if it was a new file - if (isset($_POST['newFileName'])&&$_POST['newFileName']!="") { - if ($fileLoc == "") {$fileLoc = "/";}; + if (isset($_POST['newFileName']) && $_POST['newFileName']!="") { echo ''; - echo ''; + echo ''; } // Reload stickytab window echo ''; @@ -247,11 +237,10 @@ if (action=="load") { if (fileType=="image") { top.document.getElementById('blackMask').style.visibility = "visible"; - top.document.getElementById('mediaContainer').innerHTML = "\" class=\"whiteGlow\" style=\"border: solid 10px #fff; max-width: 700px; max-height: 500px\" onClick=\"return false\">
"; + top.document.getElementById('mediaContainer').innerHTML = "\" class=\"whiteGlow\" style=\"border: solid 10px #fff; max-width: 700px; max-height: 500px\" onClick=\"return false\">
"; } - top.ICEcoder.serverMessage(); - top.ICEcoder.serverQueue("del",0); + top.ICEcoder.serverMessage();top.ICEcoder.serverQueue("del",0); } @@ -263,16 +252,9 @@ if (action=="load") {