/** * log table changes */ function logTableChange($tableName,$fieldName,$fieldID,$fieldValueOld,$fieldValueNew) { global $datetime,$trailSessionUser; if($fieldValueOld!=$fieldValueNew) { mysqlquery("insert into vl_logs_tables (tableName,fieldName,fieldID,fieldValueOld,fieldValueNew,url,created,createdby) values ('$tableName','$fieldName','$fieldID','$fieldValueOld','$fieldValueNew','".getThisURL()."','$datetime','$trailSessionUser')"); } }
function indexdirThisDir($general_path, $general_url, $commonImageFormats) { global $listingHTML; $listingHTML = " "; global $dontListFiles; global $dontListDirs; global $butOnly; global $TDperRow; global $fileAndDir; global $dir; global $dir3; global $pathDir; $pathDir = urlToPath($dir, $general_path, $general_url); global $orderBy; global $order; global $thisFileName; global $TDperRowDefault; global $TDperRowMax; $numHiddenDirs = 0; $numHiddenFiles = 0; $dirsArr = array(); $filesArr = array(); // opening directory // in case, opening default directory (that is where this file is placed) if ($dir == "") { $validDir = @opendir("."); if ($validDir !== false) { $this_dir_handle = opendir('.'); } else { $listingHTML .= "<br><br><CENTER> <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b><i>Url or Path address not valid(!)</i></b></font></center><br><br> \n"; $listingHTML .= "<center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">[<a href=\"javascript:history.go(-1)\"> go back </a>]</font></center><br><br>"; return $listingHTML; } } else { // $general_url3 = str_replace("%20"," ", $general_url); $general_url3 = urldecode($general_url); $pathDir = str_replace($general_url, $general_path, $pathDir); $pathDir = str_replace($general_url3, $general_path, $pathDir); $pathDir = str_replace("/'", "'", $pathDir); // $pathDir = str_replace(" /'"," '",$pathDir); // $pathDir = str_replace("&","%26",$pathDir); // $pathDir = str_replace("'","%27",$pathDir); // $pathDir = str_replace("+","%2B",$pathDir); // $pathDir2 = urlencode($pathDir); $validDir = @opendir($pathDir . "/."); if ($validDir !== false) { $this_dir_handle = opendir($pathDir . "/."); # get a handle on the current directory } else { // echo $pathDir; $listingHTML .= "<div align=center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><br><br><b><i>Url or Path address not valid(!)</i></b></font><br><br></div>"; $listingHTML .= "<div align=center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">" . $dir . "</font><br><br></div>"; $listingHTML .= "<div align=center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">[<a href=\"javascript:history.go(-1)\"> go back </a>]</font><br><br></div>"; return $listingHTML; } // avoiding hacks for going up reading dirs $avoidHack1 = strpos($pathDir, "../"); $avoidHack2 = strpos($pathDir, "/.."); $avoidHack3 = strpos($pathDir, "..%2F"); $avoidHack4 = strpos($pathDir, "%2F.."); $avoidHack5 = strpos($dir, "../"); $avoidHack6 = strpos($dir, "/.."); $avoidHack7 = strpos($dir, "..%2F"); $avoidHack8 = strpos($dir, "%2F.."); if ($avoidHack1 > -1 || $avoidHack2 > -1 || $avoidHack3 > -1 || $avoidHack4 > -1 || $avoidHack5 > -1 || $avoidHack6 > -1 || $avoidHack7 > -1 || $avoidHack8 > -1) { $listingHTML .= "<br><br><CENTER> <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"4\"><b><i>Url or Path address not valid(!)</i></b></font></center><br><br> \n"; $listingHTML .= "<center><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">[<a href=\"javascript:history.go(-1)\"> go back </a>]</font></center><br><br>"; return $listingHTML; } } // doing parsing (dirs and files) while (false !== ($fileORdir = readdir($this_dir_handle))) { if ($fileORdir != "." && $fileORdir != "..") { $notIsFile = false; if ($dir != "") { $pathWithFileORdir = $pathDir . "/" . $fileORdir . "/."; $notIsFile = @opendir($pathWithFileORdir); } if (is_dir($fileORdir) == false && $notIsFile == false) { $thisFileNoShow = 0; for ($i = 0; $i < count($dontListFiles); $i++) { if ($fileORdir == $dontListFiles[$i]) { $thisFileNoShow = 1; $numHiddenFiles++; break; } } if ($thisFileNoShow == 0) { $fileNameAndextensionArr = explode(".", $fileORdir); array_push($filesArr, $fileNameAndextensionArr); } } else { $thisDirNoShow = 0; for ($i = 0; $i < count($dontListDirs); $i++) { if ($fileORdir == $dontListDirs[$i]) { $thisDirNoShow = 1; $numHiddenDirs++; break; } } if ($thisDirNoShow == 0) { array_push($dirsArr, $fileORdir); } } } } // close working directory closedir($this_dir_handle); // sorting dirs // ordering directories // sort($dirsArr,SORT_REGULAR); $dev = 0; $dirsArrDep = array(); // by default, ordering directories by name sort($dirsArr, SORT_REGULAR); if ($orderBy == "") { $orderBy = "name"; } if ($order == "") { $order = "0"; } for ($i = 0; $i < count($dirsArr); $i++) { if ($dev == 0 && $i == count($dirsArr)) { } else { for ($a = 0; $a < count($dirsArr) - 1; $a++) { $b = $a + 1; switch ($orderBy) { // ordering directories by name case "name": // if ( $order == "0" ) { sort($dirsArr,SORT_REGULAR); } if ($order == "1" && $dirsArr[$a] < $dirsArr[$b]) { $dirsArrDep[$a] = $dirsArr[$a]; $dirsArr[$a] = $dirsArr[$b]; $dirsArr[$b] = $dirsArrDep[$a]; $dev = 1; } break; // ordering directories by estension // ordering directories by estension case "type": // extracting estension of this dir $aDot_position = strrpos($dirsArr[$a], "."); $aThisDirNameLength = strlen($dirsArr[$a]); $aDirExtension = ""; if ($aDot_position != "") { $aDirExtension = substr($dirsArr[$a], ++$aDot_position, $aThisDirNameLength); } // extracting estension of following dir $bDot_position = strrpos($dirsArr[$b], "."); $bThisDirNameLength = strlen($dirsArr[$b]); $bDirExtension = ""; if ($bDot_position != "") { $bDirExtension = substr($dirsArr[$b], ++$bDot_position, $bThisDirNameLength); } // in case, swapping two dirs if ($order == "0" && $aDirExtension > $bDirExtension || $order == "1" && $aDirExtension < $bDirExtension) { $dirsArrDep[$a] = $dirsArr[$a]; $dirsArr[$a] = $dirsArr[$b]; $dirsArr[$b] = $dirsArrDep[$a]; $dev = 1; } break; // ordering directories by date // ordering directories by date case "date": $aLastModStats = @stat($dirsArr[$a]); $aLastMod = date("YmdHi", $aLastModStats[9]); $bLastModStats = @stat($dirsArr[$b]); $bLastMod = date("YmdHi", $bLastModStats[9]); // in case, swapping two dirs if ($order == "0" && $aLastMod > $bLastMod || $order == "1" && $aLastMod < $bLastMod) { $dirsArrDep[$a] = $dirsArr[$a]; $dirsArr[$a] = $dirsArr[$b]; $dirsArr[$b] = $dirsArrDep[$a]; $dev = 1; } break; // ordering directories by size // ordering directories by size case "size": $aDirStats = @stat($dirsArr[$a]); $aDirSizeInKb = round($aDirStats[7] / 1024, 2); // size in kilobytes $bDirStats = @stat($dirsArr[$b]); $bDirSizeInKb = round($bDirStats[7] / 1024, 2); // size in kilobytes // in case, swapping two dirs if ($order == "0" && $aDirSizeInKb > $bDirSizeInKb || $order == "1" && $aDirSizeInKb < $bDirSizeInKb) { $dirsArrDep[$a] = $dirsArr[$a]; $dirsArr[$a] = $dirsArr[$b]; $dirsArr[$b] = $dirsArrDep[$a]; $dev = 1; } break; default: } } } } // sorting files // sort($filesArr,SORT_REGULAR); $dev = 0; $filesArrDep = array(); for ($i = 0; $i < count($filesArr); $i++) { $filesArr[$i] = join(".", $filesArr[$i]); } // by default, ordering files by name sort($filesArr, SORT_REGULAR); if ($orderBy == "") { $orderBy = "name"; } if ($order == "") { $order = "0"; } for ($i = 0; $i < count($filesArr); $i++) { if ($dev == 0 && $i == count($filesArr)) { } else { for ($a = 0; $a < count($filesArr) - 1; $a++) { $b = $a + 1; switch ($orderBy) { // ordering files by name case "name": // if ( $order == "0" ) { sort($filesArr,SORT_REGULAR); } if ($order == "1" && $filesArr[$a] < $filesArr[$b]) { $filesArrDep[$a] = $filesArr[$a]; $filesArr[$a] = $filesArr[$b]; $filesArr[$b] = $filesArrDep[$a]; $dev = 1; } break; // ordering files by filetype // ordering files by filetype case "type": // extracting extension of this files $aDot_position = strrpos($filesArr[$a], "."); $aThisFileNameLength = strlen($filesArr[$a]); $aFileExtension = ""; if ($aDot_position != "") { $aFileExtension = substr($filesArr[$a], ++$aDot_position, $aThisFileNameLength); } // extracting extension of following file $bDot_position = strrpos($filesArr[$b], "."); $bThisFileNameLength = strlen($filesArr[$b]); $bFileExtension = ""; if ($bDot_position != "") { $bFileExtension = substr($filesArr[$b], ++$bDot_position, $bThisFileNameLength); } // in case, swapping two files if ($order == "0" && $aFileExtension > $bFileExtension || $order == "1" && $aFileExtension < $bFileExtension) { $filesArrDep[$a] = $filesArr[$a]; $filesArr[$a] = $filesArr[$b]; $filesArr[$b] = $filesArrDep[$a]; $dev = 1; } break; // ordering files by date // ordering files by date case "date": $aLastModStats = @stat($pathDir . "/" . $filesArr[$a]); $aLastMod = $aLastModStats[9]; $bLastModStats = @stat($pathDir . "/" . $filesArr[$b]); $bLastMod = $bLastModStats[9]; // in case, swapping two files if ($order == "0" && $aLastMod > $bLastMod || $order == "1" && $aLastMod < $bLastMod) { $filesArrDep[$a] = $filesArr[$a]; $filesArr[$a] = $filesArr[$b]; $filesArr[$b] = $filesArrDep[$a]; $dev = 1; } break; // ordering files by size // ordering files by size case "size": $aFileStats = @stat($pathDir . "/" . $filesArr[$a]); $aFileSizeInKb = $aFileStats[7]; // size in kilobytes $bFileStats = @stat($pathDir . "/" . $filesArr[$b]); $bFileSizeInKb = $bFileStats[7]; // size in kilobytes // in case, swapping two files if ($order == "0" && $aFileSizeInKb > $bFileSizeInKb || $order == "1" && $aFileSizeInKb < $bFileSizeInKb) { $filesArrDep[$a] = $filesArr[$a]; $filesArr[$a] = $filesArr[$b]; $filesArr[$b] = $filesArrDep[$a]; $dev = 1; } break; default: } } } } if ($dir == "") { $baseUrl = getThisURL($general_path, $general_url); // finding url corresponding to working dir by default } else { $baseUrl = $dir; // finding url corresponding to desired dir } // title of final page $listingHTML .= "<div align=left>"; switch ($butOnly) { case "*noimg": $listingHTML .= "<br><br><CENTER> <font face=\"Verdana, Arial, Helvetica, sans-serif\"><b><font size=\"3\">Index of <br>files (excluding popular image formats)</font></b><br></font></CENTER>"; break; case "*img": $listingHTML .= "<br><br><CENTER> <font face=\"Verdana, Arial, Helvetica, sans-serif\"><b><font size=\"3\">Index of<br>images having popular formats</font></b></font></CENTER>"; break; case "": $listingHTML .= "<br><br><CENTER> <font face=\"Verdana, Arial, Helvetica, sans-serif\"><b><font size=\"3\">Index of<br>all files</font></b></font></CENTER>"; break; default: $listingHTML .= "<br><br><CENTER> <font face=\"Verdana, Arial, Helvetica, sans-serif\"><b><font size=\"3\">Index of<br>files with [" . $butOnly . "] extension</font></b></font></CENTER>"; } $listingHTML .= "</div>\n"; // initializing counts of table cells $TD_count = 0; $TotTD_count = 0; // in case, correcting chosen number of table cells if ($TDperRow == "") { $TDperRow = $TDperRowDefault; } if ($TDperRow > $TDperRowMax) { $TDperRow = $TDperRowMax; } if ($TDperRow < 1) { $TDperRow = $TDperRowDefault; } // finding corresponding url $baseDir = getThisURL($general_path, $general_url); $listingHTML .= " <tr> \n <td colspan=" . $TDperRow . "><div align=left>"; // in case, correction of wrong slashes $baseUrl = slashCorrection($baseUrl); // starting html code of form tag $listingHTML .= "<FORM METHOD=\"get\" ACTION=\"" . $thisFileName . "\">"; $listingHTML .= "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">"; // in case, correcting spaces in url/path // $baseUrl3 = str_replace("%20"," ",$baseUrl); $baseUrl3 = urldecode($baseUrl); // displaying visible url/path address into corresponding input cell // in case, adding protocol "file://" global $urlPathDisplayed; $urlPathDisplayed = ""; $checkFileProtocol1 = strpos($dir3, "/"); $checkFileProtocol2 = strpos($dir3, "%2F"); $checkFileProtocol3 = strpos($dir3, ":"); $checkFileProtocol4 = strpos($dir3, "%3A"); if ($checkFileProtocol1 == 1 || $checkFileProtocol2 == 1 || $checkFileProtocol1 == 2 || $checkFileProtocol2 == 2) { $urlPathDisplayed = "file://" . $dir3; } else { $urlPathDisplayed = $baseUrl3; } $urlPathDisplayed = slashCorrection($urlPathDisplayed); global $baseUrl4; $baseUrl4 = str_replace(" ", "%20", $baseUrl); $baseUrl4 = str_replace("/'", "'", $baseUrl4); $baseUrl4 = str_replace("&", "%26", $baseUrl4); $baseUrl4 = str_replace("'", "%27", $baseUrl4); $baseUrl4 = str_replace("+", "%20", $baseUrl4); // $baseUrl4 = urlencode($baseUrl); // $baseUrl4 = $baseUrl; // $baseUrl4 = str_replace(" ","+",$baseUrl); // echo $baseUrl4; // writing html code for working url/path address $listingHTML .= "<br> \nurl: <a target=_blank href=" . $baseUrl4 . ">" . $baseUrl3 . "</a><br>\n"; // in case, deleting last slash of path address $thisPath2Length = strlen($pathDir); $lastSlash2Position = strrpos($pathDir, "/"); $pathDir2 = $pathDir; if ($thisPath2Length == ++$lastSlash2Position) { $pathDir2 = substr($pathDir, 0, --$lastSlash2Position); } $pathDir2 = slashCorrection($pathDir2); // $pathDir3 = str_replace("%20"," ",$pathDir2); $pathDir3 = urldecode($pathDir2); // $listingHTML .= "path: <a target=_blank href=\"file://".$pathDir3."\">".$pathDir3."</a><br>\n"; $listingHTML .= "path: " . $pathDir3 . "<br>\n"; // writing general infos // distinguishing 4 possible cases (look for all files, just common images, other files, a certain filetype) // starting first block of repeated html code $listingHTML2 = "| show <select name=\"fileAndDir\" size=\"1\"> \n"; $listingHTML2 .= " <option value=\"0\" "; if ($fileAndDir == "0" || $fileAndDir == "") { $listingHTML2 .= " selected "; } $listingHTML2 .= " >files & dirs. </option> \n"; $listingHTML2 .= " <option value=\"1\" "; if ($fileAndDir == "1") { $listingHTML2 .= " selected "; } $listingHTML2 .= " >only files</option> \n"; $listingHTML2 .= " <option value=\"2\" "; if ($fileAndDir == "2") { $listingHTML2 .= " selected "; } $listingHTML2 .= " >only dirs</option> \n"; $listingHTML2 .= "</select> \n"; // starting second block of repeated html code $listingHTML3 = "<br>order by <select name=\"orderBy\">\n "; $listingHTML3 .= "<option value=\"name\" "; if ($orderBy == "name") { $listingHTML3 .= " selected "; } $listingHTML3 .= ">names</option>\n"; $listingHTML3 .= "<option value=\"type\" "; if ($orderBy == "type") { $listingHTML3 .= " selected "; } $listingHTML3 .= ">types</option>\n"; $listingHTML3 .= "<option value=\"date\" "; if ($orderBy == "date") { $listingHTML3 .= " selected "; } $listingHTML3 .= ">date</option>\n"; $listingHTML3 .= "<option value=\"size\" "; if ($orderBy == "size") { $listingHTML3 .= " selected "; } $listingHTML3 .= ">size</option>\n</select>"; $listingHTML3 .= "   |  ascending"; $listingHTML3 .= "<input type=\"radio\" name=\"order\" value=\"0\" "; if ($order == "0") { $listingHTML3 .= " checked "; } $listingHTML3 .= "/><img src=" . $thisFileName . "?image=1004 border=0 alt=\"ascending order\" width=16 height=16> "; $listingHTML3 .= "descending<input type=\"radio\" name=\"order\" value=\"1\" "; if ($order == "1") { $listingHTML3 .= " checked "; } $listingHTML3 .= "/><img src=" . $thisFileName . "?image=1005 border=0 alt=\"descending order\" width=16 height=16><br>"; // starting third block of html code (link seeds) // $general_url2 = str_replace("%20"," ",$general_url); $general_url2 = urldecode($general_url); $listingHTML4 = ""; $listingHTML4 .= "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">breadcrumbs: <a href=" . $thisFileName . "?dir=" . $general_url . "&butOnly=" . $butOnly . "&TDperRow=" . $TDperRow . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">" . $general_url2 . "</a>"; $dirSeed = str_replace($general_url . "/", "", $dir); $dirSeed = str_replace($general_url3 . "/", "", $dir); $dirSeed = str_replace($general_url, "", $dirSeed); $dirSeed = str_replace($general_url3, "", $dirSeed); $dirSeed = str_replace("/'", "'", $dirSeed); // $dirSeed = str_replace(" /'"," '",$dirSeed); // $dirSeed2 = str_replace(" ","%20",$dirSeed); $dirSeed2 = urlencode($dirSeed); $dirSeed3 = ""; $dirSeedDep = ""; $devSeed = 0; if ($dirSeed2 != "") { while ($devSeed == 0) { while (substr($dirSeed2, 0, 1) == "/") { $dirSeed2 = substr($dirSeed2, 1); } if ($dirSeed2 != "") { $dirSeedNextSlash = strpos($dirSeed2, "/"); $dirSeedNextSlashJump = 1; if ($dirSeedNextSlash == false) { $dirSeedNextSlash = strpos($dirSeed2, "%2F"); $dirSeedNextSlashJump = 3; } if ($dirSeedNextSlash != false) { $dirSeed3 = substr($dirSeed2, 0, $dirSeedNextSlash); // $dirSeed2 = substr($dirSeed2, $dirSeedNextSlash + 1); $dirSeed2 = substr($dirSeed2, $dirSeedNextSlash + $dirSeedNextSlashJump); } else { $dirSeed3 = $dirSeed2; $dirSeed2 = ""; $devSeed = 1; } $dirSeedDep = $dirSeedDep . "/" . $dirSeed3; while (substr($dirSeedDep, 0, 1) == "/") { $dirSeedDep = substr($dirSeedDep, 1); } // $dirSeed4 = str_replace("%20"," ",$dirSeed3); $dirSeed4 = urldecode($dirSeed3); // $dirSeed3 = str_replace(" ","%20",$dirSeed3); $dirSeed3 = urlencode($dirSeed3); $listingHTML4 .= " / <a href=" . $thisFileName . "?dir=" . $general_url . "/" . $dirSeedDep . "&butOnly=" . $butOnly . "&TDperRow=" . $TDperRow . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">" . $dirSeed4 . "</a>"; } else { $devSeed = 1; } } } $listingHTML4 .= "</font><br>"; // starting fourth block of html code (possible number of columns) $listingHTML5 = "<select name=\"TDperRow\">\n<option value=\"" . $TDperRow . "\" selected>" . $TDperRow . "</option>\n<option value=\"" . $TDperRow . "\" >--</option>\n"; for ($cols = 1; $cols < $TDperRowMax + 1; $cols++) { $listingHTML5 .= "<option value=\"" . $cols . "\">" . $cols . "</option>\n"; } $listingHTML5 .= "</select>"; // insert appropriate html code if ($butOnly == "") { $listingHTML .= "<br>\n"; $listingHTML .= "url/path <INPUT TYPE=\"text\" SIZE=\"55\" NAME=\"dir\" VALUE=\"" . $urlPathDisplayed . "\"><br>\n"; $listingHTML .= $listingHTML3; // chosen kind of sorting $listingHTML .= "extension <INPUT TYPE=\"text\" SIZE=\"6\" NAME=\"butOnly\" VALUE=\"" . $butOnly . "\"> <font size=\"3\">|</font> columns " . $listingHTML5 . "\n " . $listingHTML2 . " <INPUT TYPE=\"submit\" VALUE=\" ok \" NAME=\"ricerca\"><br>\n"; $listingHTML .= "<br>show: <U>all</U> | <a href=" . $thisFileName . "?butOnly=*img&TDperRow=" . $TDperRow . "&dir=" . $baseUrl4 . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">popular image formats</a> | <a href=" . $thisFileName . "?butOnly=*noimg&TDperRow=" . $TDperRow . "&dir=" . $baseUrl4 . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">others</a> <A HREF=\"#\" onClick=\"javascript:helpPopUpIt();\"><img src=" . $thisFileName . "?image=1006 border=0 alt=\"help\" width=16 height=16> <i>help</i></A> </font>\n"; } else { switch ($butOnly) { case "*noimg": $listingHTML .= "<br>\n"; $listingHTML .= "url/path <INPUT TYPE=\"text\" SIZE=\"55\" NAME=\"dir\" VALUE=\"" . $urlPathDisplayed . "\"><br>\n"; $listingHTML .= $listingHTML3; // chosen kind of sorting $listingHTML .= "extension <INPUT TYPE=\"text\" SIZE=\"6\" NAME=\"butOnly\" VALUE=\"" . $butOnly . "\"> <font size=\"3\">|</font> columns " . $listingHTML5 . "\n " . $listingHTML2 . " <INPUT TYPE=\"submit\" VALUE=\" ok \" NAME=\"ricerca\"><br>\n"; $listingHTML .= "<br>show: <a href=" . $thisFileName . "?dir=" . $baseUrl4 . "&TDperRow=" . $TDperRow . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">all</a> | <a href=" . $thisFileName . "?butOnly=*img&TDperRow=" . $TDperRow . "&dir=" . $baseUrl4 . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">popular image formats</a> | <u>others</u> <A HREF=\"#\" onClick=\"javascript:helpPopUpIt();\"><img src=" . $thisFileName . "?image=1006 border=0 alt=\"help\" width=16 height=16> <i>help</i></A> </font>\n"; break; case "*img": $listingHTML .= "<br>\n"; $listingHTML .= "url/path <INPUT TYPE=\"text\" SIZE=\"55\" NAME=\"dir\" VALUE=\"" . $urlPathDisplayed . "\"><br>\n"; $listingHTML .= $listingHTML3; // chosen kind of sorting $listingHTML .= "extension <INPUT TYPE=\"text\" SIZE=\"6\" NAME=\"butOnly\" VALUE=\"" . $butOnly . "\"> <font size=\"3\">|</font> columns " . $listingHTML5 . "\n " . $listingHTML2 . " <INPUT TYPE=\"submit\" VALUE=\" ok \" NAME=\"ricerca\"><br>\n"; $listingHTML .= "<br>show: <a href=" . $thisFileName . "?dir=" . $baseUrl4 . "&TDperRow=" . $TDperRow . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">all</a> | <u>popular image formats</u> | <a href=" . $thisFileName . "?butOnly=*noimg&TDperRow=" . $TDperRow . "&dir=" . $baseUrl4 . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">others</a> <A HREF=\"#\" onClick=\"javascript:helpPopUpIt();\"><img src=" . $thisFileName . "?image=1006 border=0 alt=\"help\" width=16 height=16> <i>help</i></A> </font>\n"; break; default: $listingHTML .= "<br>\n"; $listingHTML .= "url/path <INPUT TYPE=\"text\" SIZE=\"55\" NAME=\"dir\" VALUE=\"" . $urlPathDisplayed . "\"><br>\n"; $listingHTML .= $listingHTML3; // chosen kind of sorting $listingHTML .= "<u>extension</u> <INPUT TYPE=\"text\" SIZE=\"6\" NAME=\"butOnly\" VALUE=\"" . $butOnly . "\"> <font size=\"3\">|</font> columns " . $listingHTML5 . "\n " . $listingHTML2 . " <INPUT TYPE=\"submit\" VALUE=\" ok \" NAME=\"ricerca\"><br>\n"; $listingHTML .= "<br>show: <a href=" . $thisFileName . "?dir=" . $baseUrl4 . "&TDperRow=" . $TDperRow . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">all</a> | <a href=" . $thisFileName . "?butOnly=*img&TDperRow=" . $TDperRow . "&dir=" . $baseUrl4 . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">popular image formats</a> | <a href=" . $thisFileName . "?butOnly=*noimg&TDperRow=" . $TDperRow . "&dir=" . $baseUrl4 . "&fileAndDir=" . $fileAndDir . "&orderBy=" . $orderBy . "&order=" . $order . ">others</a> <A HREF=\"#\" onClick=\"javascript:helpPopUpIt();\"><img src=" . $thisFileName . "?image=1006 border=0 alt=\"help\" width=16 height=16> <i>help</i></A> </font>\n"; } } // link to page bottom $listingHTML .= " <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><a href=\"#EndOfPage\"><img src=" . $thisFileName . "?image=1002 border=0 alt=\"go to page bottom\" width=16 height=16> go to page bottom </a>\n"; // closing html code of form tag $listingHTML .= "</font></FORM>"; $listingHTML .= $listingHTML4; // add link seeds $listingHTML .= "</div></td> \n</tr>\n"; // starting dirs list if ($fileAndDir != "0" && $fileAndDir != "1" && $fileAndDir != "2") { $fileAndDir = "0"; } if ($fileAndDir == "0" || $fileAndDir == "2" || $fileAndDir == "") { $TDwidthPerc = 100 / $TDperRow; $thisPathLength = strlen($baseUrl); $lastSlashPosition = strrpos($baseUrl, "/"); $baseUrl2 = $baseUrl; if ($thisPathLength == ++$lastSlashPosition) { $baseUrl2 = substr($baseUrl, 0, --$lastSlashPosition); $lastSlashPosition = strrpos($baseUrl2, "/"); } $thisDirLength = $thisPathLength - $lastSlashPosition; // finding url of upper dir $upperUrl = substr($baseUrl2, 0, $lastSlashPosition); $listingHTML .= " \n<tr>\n <td valign=top colspan=" . $TDperRow . "><div align=left>"; $totDir = count($dirsArr); if (count($dirsArr) > 0) { $listingHTML .= "<table width=100% border=0 cellspacing=4 cellPadding=0>\n"; } $listingHTML .= " <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\"> • <b>subdirectories</b>:</font>"; $listingHTML .= "<div align=\"right\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><a href=\"" . $thisFileName . "?butOnly=" . $butOnly . "&fileAndDir=" . $fileAndDir . "&TDperRow=" . $TDperRow . "&orderBy=" . $orderBy . "&order=" . $order . "&dir=" . $upperUrl . "\" class =\"dirs\"><img src=" . $thisFileName . "?image=1001 border=0 alt=\"apri cartella superiore\" width=16 height=16> <font size=\"1\">go one level up</font></a></font></div>\n"; if (count($dirsArr) > 0) { $listingHTML .= "\n <tr>\n <td width=" . $TDwidthPerc . "% valign=top align=left bgcolor=#F9F9F9>"; } $j = count($dirsArr) / $TDperRow; $j2 = intval($j, 10); if ($j == $j2) { $j = $j2 - 1; } else { $j = $j2; } $z = 0; for ($i = 0; $i < count($dirsArr); $i++) { if ($z > $j) { $listingHTML .= "</td> \n <td bgcolor=#F9F9F9 width=" . $TDwidthPerc . "% valign=top align=left>"; $z = 1; } else { $z++; } // $dirLinkName = str_replace(" ","%20",$dirsArr[$i]); $dirLinkName = urlencode($dirsArr[$i]); $dirLinkName = str_replace("&", "%26", $dirLinkName); $dirLinkName = str_replace("'", "%27", $dirLinkName); $dirLinkName = str_replace("+", "%20", $dirLinkName); $dirLinkName = str_replace(" ", "%20", $dirLinkName); $baseUrl5 = str_replace("&", "%26", $baseUrl); $baseUrl5 = str_replace("'", "%27", $baseUrl5); $baseUrl5 = str_replace("+", "%20", $baseUrl5); $baseUrl5 = str_replace(" ", "%20", $baseUrl5); // writing html code for dirs listing $listingHTML .= " <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><a href=\"" . $thisFileName . "?butOnly=" . $butOnly . "&fileAndDir=" . $fileAndDir . "&TDperRow=" . $TDperRow . "&orderBy=" . $orderBy . "&order=" . $order . "&dir=" . $baseUrl5 . "/" . $dirLinkName . "/\" class =\"dirs\"><img src=" . $thisFileName . "?image=1000 border=0 width=32 height=32 alt=\"" . $dirsArr[$i] . "\"> <b>" . $dirsArr[$i] . "</b></a></font> <br> \n "; if ($i == count($dirsArr) && $j < $z) { $listingHTML .= "</td> \n"; } } if (count($dirsArr) > 0) { $listingHTML .= " </td>\n </tr>\n </table>"; $listingHTML .= "</td>\n</tr>\n"; } $listingHTML .= " \n <tr> \n <td colspan=" . $TDperRow . "><div align=left><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">"; $listingHTML .= " total subdirectories: <b>" . $totDir . "</b>"; $listingHTML .= "<br> </font></div></td></tr>"; } // starting files list if ($fileAndDir == "0" || $fileAndDir == "1" || $fileAndDir == "") { $listingHTML .= " <tr>\n <td valign=top colspan=" . $TDperRow . "><div align=left>"; $listingHTML .= "<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\"> • <b>files</b>:<font>"; $listingHTML .= " </div></td></tr>"; for ($i = 0; $i < count($filesArr); $i++) { if ($dir == "") { $baseUrl = getThisURL($general_path, $general_url); $urlAndFile = $filesArr[$i]; } else { $urlAndFile = $pathDir . "/" . $filesArr[$i]; } // reading files info $fileStats = @stat($urlAndFile); $fileSizeInKb = round($fileStats[7] / 1024, 2); // size in kilobytes $fileLastMod = date("H : i M dS Y", $fileStats[9]); $fileTimeLastMod = date("H:i", $fileStats[9]); // time of last modification $fileDateLastMod = date("d-M-Y", $fileStats[9]); // date of last modification $filePixels = @getimagesize($urlAndFile); // image dimensions (hight and width) // $filePixels[0] = hight // $filePixels[1] = width // $filePixels[3] = hight + width (extended form for html code) // extracting estension of this file $dot_position = strrpos($filesArr[$i], "."); $thisFileNameLength = strlen($filesArr[$i]); $fileExtension = ""; if ($dot_position != "") { $fileExtension = substr($filesArr[$i], ++$dot_position, $thisFileNameLength); } // managing hidden files (the ones starting with a dot) $hiddenFileYesNo = 0; if ($dot_position == 0) { $hiddenFileYesNo = 1; $fileExtension = substr($filesArr[$i], ++$dot_position, $thisFileNameLength); } if ($dot_position == "") { $hiddenFileYesNo = 0; $fileExtension = ""; } if ($butOnly == "") { // html code of first row of final table if ($TD_count == 0) { $listingHTML .= "<tr> \n"; } } $fileDate = str_replace("-", " ", $fileDateLastMod); // in case, correcting spaces into file name // $fileName = str_replace(" ","%20",$filesArr[$i]); $fileName = urlencode($filesArr[$i]); // $fileName = str_replace("+","%20",$fileName); $fileName = str_replace("&", "%26", $fileName); $fileName = str_replace("'", "%27", $fileName); $fileName = str_replace("+", "%20", $fileName); $fileName = str_replace(" ", "%20", $fileName); $fileText = "(" . $fileExtension . " file)"; // deleting unnecessary slashes $baseUrl = str_replace("http://", "http:/@", $baseUrl); $baseUrl = str_replace("https://", "https:/@", $baseUrl); $baseUrl = str_replace("file://", "file:/@", $baseUrl); $baseUrl = str_replace("http%3A%2F%2F", "http%3A%2F@", $baseUrl); $baseUrl = str_replace("https%3A%2F%2F", "https%3A%2F@", $baseUrl); $baseUrl = str_replace("file%3A%2F%2F", "file%3A%2F@", $baseUrl); $dev = 0; while ($dev = 0) { if (strpos($baseUrl, "//") != false) { $baseUrl = str_replace("//", "/", $baseUrl); $baseUrl = str_replace("%2F%2F", "%2F", $baseUrl); } else { $dev = 1; } } $baseUrl = str_replace("http:/@", "http://", $baseUrl); $baseUrl = str_replace("https:/@", "https://", $baseUrl); $baseUrl = str_replace("file:/@", "file://", $baseUrl); $baseUrl = str_replace("http%3A%2F@", "http%3A%2F%2F", $baseUrl); $baseUrl = str_replace("https%3A%2F@", "https%3A%2F%2F", $baseUrl); $baseUrl = str_replace("file%3A%2F@", "file%3A%2F%2F", $baseUrl); // finding table cell width in percentage $TDwidthPerc = 100 / $TDperRow; if ($butOnly == "") { $fileExtension2 = strtolower($fileExtension); $HtmlCodeOfCells = ""; $filePixels_a = $filePixels[0]; $filePixels_b = $filePixels[1]; $filesArr_i = $filesArr[$i]; // in case, listing all files $listingHTML .= createHtmlCodeOfCells($HtmlCodeOfCells, $fileExtension2, $butOnly, $TDwidthPerc, $baseUrl4, $fileName, $filePixels_a, $filePixels_b, $filesArr_i, $fileSizeInKb, $fileDate, $fileTimeLastMod, $fileExtension, $hiddenFileYesNo, $thisFileName); } else { $extractFileYesNo = "0"; // making extension search not-sensitive $fileExtension2 = strtolower($fileExtension); $devComImgFrmts = 0; for ($k = 0; $k < count($commonImageFormats); $k++) { if ($fileExtension2 == $commonImageFormats[$k]) { $devComImgFrmts = 1; } } // managing images popular filetypes switch ($butOnly) { case "*noimg": if ($devComImgFrmts == 0) { $extractFileYesNo = "1"; } break; case "*img": if ($devComImgFrmts == 1) { $extractFileYesNo = "1"; } break; default: if ($fileExtension2 == strtolower($butOnly) || strtolower($butOnly) == "." . $fileExtension2) { $extractFileYesNo = "1"; } } if ($extractFileYesNo == "1") { // starting html code for first row of table cell if ($TD_count == 0) { $listingHTML .= "<tr> \n"; } $fileExtension2 = strtolower($fileExtension); $HtmlCodeOfCells = ""; $filePixels_a = $filePixels[0]; $filePixels_b = $filePixels[1]; $filesArr_i = $filesArr[$i]; // writing html code for listing desired files $listingHTML .= createHtmlCodeOfCells($HtmlCodeOfCells, $fileExtension2, $butOnly, $TDwidthPerc, $baseUrl4, $fileName, $filePixels_a, $filePixels_b, $filesArr_i, $fileSizeInKb, $fileDate, $fileTimeLastMod, $fileExtension, $hiddenFileYesNo, $thisFileName); } else { $TotTD_count--; $TD_count--; } } // counting total td tag per table rows $TD_count++; // closing table rows if ($TD_count == $TDperRow) { $listingHTML .= "</tr> \n"; $TD_count = 0; } $TotTD_count++; } // in case, completing last row with empty cells $TDclose = $TDperRow - $TotTD_count % $TDperRow; if ($TotTD_count % $TDperRow != 0) { // processing remaining cells for ($j = 0; $j < $TDclose; $j++) { $listingHTML .= " <td height=130 width=" . $TDwidthPerc . "% align=\"center\" vAlign=\"middle\" bgcolor=\"#FFFFFF\"> </td> \n"; $TDclose2 = $TDclose - 1; // close last row if ($j == $TDclose2) { $listingHTML .= "</tr> \n"; } } } // in case of no files (empty list) $endArray = count($filesArr) - 1; if (($i = $endArray) && $TotTD_count == 0) { $tableWidth = $TDperRow * 110; // display a specific message according to desired kind of search switch ($butOnly) { case "*noimg": $listingHTML .= " \n <tr> \n<td colspan=" . $TDperRow . " width=100% height=130 align=center valign=middle bgcolor=\"#FFFFFF\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=1>no files (not having popular image types) found</font></td> \n"; break; case "*img": $listingHTML .= " \n <tr> \n<td colspan=" . $TDperRow . " width=100% height=130 align=center valign=middle bgcolor=\"#FFFFFF\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=1>no files (having popular image types) found</font></td> \n"; break; case "": $listingHTML .= " \n <tr> \n<td colspan=" . $TDperRow . " width=100% height=130 align=center valign=middle bgcolor=\"#FFFFFF\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=1>no files found</font></td> \n"; break; default: $listingHTML .= " \n <tr> \n<td colspan=" . $TDperRow . " width=100% height=130 align=center valign=middle bgcolor=\"#FFFFFF\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=1>no files having extension [" . $butOnly . "] found</font></td> \n"; } } $listingHTML .= " \n<tr> \n <td colspan=" . $TDperRow . "><div align=left><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">"; if ($butOnly == "") { $listingHTML .= " total files: <b>" . $TotTD_count . "</b>"; } else { switch ($butOnly) { case "*noimg": $listingHTML .= " total files not having popular image types: <b>" . $TotTD_count . "</b>"; break; case "*img": $listingHTML .= " total files having popular image types: <b>" . $TotTD_count . "</b>"; break; default: $listingHTML .= " total files [" . $butOnly . "]: <b>" . $TotTD_count . "</b>"; } } $listingHTML .= " </font></div></td> \n</tr> \n"; } // displayng final total if ($fileAndDir == "0" || $fileAndDir == "") { $totFileAndDir = $TotTD_count + $totDir; $TDperRow2 = $TDperRow - 1; if ($TDperRow == 1) { $listingHTML .= " \n<tr> \n <td><div align=left><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">"; $listingHTML .= "<br>total files and subdirectories: <b>" . $totFileAndDir . "</b>"; $listingHTML .= "</font></div><div align=right><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><a href=\"#TopOfPage\"><img src=" . $thisFileName . "?image=1003 border=0 alt=\"go to page top\" width=16 height=16> go to page top</a>"; $listingHTML .= " </font></div></td> \n</tr> \n"; } else { $listingHTML .= " \n<tr> \n <td colspan=" . $TDperRow2 . "><div align=left><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">"; $listingHTML .= "<br>total files and subdirectories: <b>" . $totFileAndDir . "</b>"; $listingHTML .= "</font></div></td> \n <td width=280><div align=right><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><a href=\"#TopOfPage\"><img src=" . $thisFileName . "?image=1003 border=0 alt=\"go to page top\" width=16 height=16> go to page top</a></a>"; $listingHTML .= " </font></div></td> \n</tr> \n"; } } // alternative link to page top if ($fileAndDir == "1" || $fileAndDir == "2") { $listingHTML .= " \n<tr> \n <td colspan=" . $TDperRow . "><div align=right><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><a href=\"#TopOfPage\"><img src=" . $thisFileName . "?image=1003 border=0 alt=\"go to page top\" width=16 height=16> go to page top</a></a>"; $listingHTML .= " </font></div></td> \n</tr> \n"; } // write final html code return $listingHTML; }
<? //register a globals variable for security $GLOBALS['vlDC']=true; include "conf.php"; //log url logURL(getThisURL(),getPostVariables()); //load variables $option=getValidatedVariable("option"); $successsws=getValidatedVariable("successsws"); $searchQuery=getValidatedVariable("searchQuery"); $searchFilter=getValidatedVariable("searchFilter"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Viral Load</title> <link href="/bootstrap/bootstrap.min.css" rel="stylesheet" type="text/css"> <link href="/css/vl.css" rel="stylesheet" type="text/css"> <link href="/css/vl2.css" rel="stylesheet" type="text/css"> <link href="/css/jsdialog.css" rel="stylesheet" media="screen" type="text/css"> <link href="/css/dhtmlxcombo.css" rel="stylesheet" type="text/css"> <link href="/css/datepicker.jquery.css" rel="stylesheet"> <link rel="stylesheet" type="text/css" href="/css/jquery-ui.css"> <link href="/css/select2.min.css" rel="stylesheet" /> <? $vlDC->printJavascript(); ?>
/** * function to query a table using the standard $query=mysqlquery("select statement") * @param: $q * @param: $field - which field should we return */ function queryTableInfo($q,$field) { global $trailSessionUser,$p,$a; $query=0; $query=mysqlquery("$q"); if(!mysqlerror()) { if(mysqlnumrows($query)) { $q=array(); $return=array(); while($q=mysqlfetcharray($query)) { $return[]=$q["$field"]; } return $return; } } else { //log this error $errorName=0; $errorName="Database Error!"; $errorDescription=0; $errorDescription="<strong>Database error:</strong> ".mysqlerror(); $errorDescription.="<br><strong>URL:</strong> ".getThisURL(); $errorDescription.="<br><strong>Page:</strong> $p"; $errorDescription.="<br><strong>Action:</strong> $a"; logError($errorName,$errorDescription,"",getUserID($trailSessionUser)); } }