Sign out';
// Respect HTTPS or not
if (isset($_SERVER['HTTPS'])) {
$url = preg_replace("/^http:\/\//", "https://", $url);
} else {
$url = preg_replace("/^https:\/\//", "http://", $url);
}
if (isset($_GET) && count($_GET) > 0) {
$getstring = "?" . http_build_query($_GET);
} else {
$getstring = "";
}
if (isset($_GET['signout'])) {
if (isset($_COOKIE['password'])) {
unset($_COOKIE['password']);
setcookie("password", null, -1, "/", $_SERVER['SERVER_NAME']);
header("Location: " . $url);
}
}
if ($_POST && $pass) {
if ((hash("sha256", $_POST['password']) == $pass)) {
if (isset($_POST['rememberme'])) {
/* Set cookie to last 1 year */
setcookie("password", hash("sha256", $_POST['password']), time()+60*60*24*365, "/", $_SERVER['SERVER_NAME'] );
} else {
/* Cookie expires when browser closes */
setcookie("password", hash("sha256", $_POST['password']), false, "/", $_SERVER['SERVER_NAME'] );
}
header("Location: " . $url . $getstring);
} else {
header("Location: " . $url);
exit();
}
} else if ($pass) {
if (!isset($_COOKIE["password"]) || (isset($_COOKIE["password"]) && $_COOKIE["password"] != $pass)) {
?>
= $sys['size'] && $i < $depth) {
$size /= $sys['size'];
$i++;
}
return sprintf($retstring, $size, $sys['prefix'][$i]);
}
$nameurl = "?C=N;O=A";
$modifiedurl = "?C=M;O=A";
$sizeurl = "?C=S;O=A";
// Set default sort
$sort = ['S', 'A'];
if (isset($_GET['C'])) {
$sort = preg_split("/;O=/", $_GET['C']);
if ($_GET['C'] == "N;O=A") {
$nameurl = "?C=N;O=D";
} else if ($_GET['C'] == "M;O=A") {
$modifiedurl = "?C=M;O=D";
} else if ($_GET['C'] == "S;O=A") {
$sizeurl = "?C=S;O=D";
}
}
$listing = array();
date_default_timezone_set("GB");
#print_r(listdir_by_date("./"));
$files_directory = "./";
$fileCollection = array();
$files = array();
$fdirectory = opendir("$files_directory");
while ($file = readdir($fdirectory)) {
if (($file == ".") || ($file == "..")) {
} else {
array_push($files, $file);
}
}
foreach ($files as $key => $file) {
$c_date = filemtime("$files_directory/$file");
$fileCollection[] = [
'date' => $c_date,
'file' => $file,
'size' => filesize("$files_directory/$file")
];
}
if (isset($sort)) {
// Sort by modified date
if ($sort[0] == "M") {
if ($sort[1] == "A") {
usort(
$fileCollection,
function($a, $b) {
return $a['date'] > $b['date'];
}
);
} else {
usort(
$fileCollection,
function($a, $b) {
return $a['date'] < $b['date'];
}
);
}
// Sort by name
} else if ($sort[0] == "N") {
if ($sort[1] == "A") {
usort(
$fileCollection,
function($a, $b) {
return $a['file'] > $b['file'];
}
);
} else {
usort(
$fileCollection,
function($a, $b) {
return $a['file'] < $b['file'];
}
);
}
// Sort by size
} else if ($sort[0] == "S") {
if ($sort[1] == "A") {
usort(
$fileCollection,
function($a, $b) {
return $a['size'] > $b['size'];
}
);
} else {
usort(
$fileCollection,
function($a, $b) {
return $a['size'] < $b['size'];
}
);
}
}
} else {
krsort($fileCollection);
}
$listsize = 0;
foreach ($fileCollection as $item) {
// Only show last X entries if requested
if (isset($_GET['last']) && ($listsize > $_GET['last'] - 1)) {
break;
}
// Drop if on index ignore list
if (in_array($item['file'], $indexignore)) {
continue;
}
// Drop if outside (optional) date range
if (isset($_GET['from'])) {
$from = $_GET['from'];
// If $from has a -, assume not Unix time
if (strpos($from, "-") !== false) {
$from = strtotime($from);
}
if (isset($_GET['to'])) {
$to = $_GET['to'];
// If $to has a -, assume not Unix time
if (strpos($to, "-") !== false) {
$to = strtotime($to);
}
} else {
$to = time();
}
if ($item['date'] < $from || $item['date'] > $to) {
continue;
}
}
$fileparts = explode(".", strtolower($item['file']));
$icon = "unknown";
switch ($fileparts[count($fileparts)-1]) {
case "png":
case "jpg":
case "gif":
case "bmp":
case "jpeg":
case "svg":
$icon="image2";
break;
case "exe":
case "jar":
case "class":
case "apk":
$icon="binary";
break;
case "c":
case "cpp":
case "h":
$icon="c";
break;
case "doc":
case "docx":
case "dot":
case "dotx":
case "odt":
case "ott":
case "oth":
case "odm":
case "xls":
case "xlsx":
case "ppt":
case "pptx":
$icon="layout";
break;
case "avi":
case "mkv":
case "wmv":
case "ogv":
case "3gp":
case "divx":
case "mov":
$icon="movie";
break;
case "pdf":
$icon="pdf";
break;
case "ps":
$icon="ps";
break;
case "java":
case "php":
case "html":
case "htm":
case "xml":
case "cs":
case "sh":
case "bat":
case "js":
case "jsp":
case "py":
case "cgi":
case "pl":
$icon="script";
break;
case "wav":
$icon="sound1";
break;
case "mp3":
case "ogg":
case "wma":
case "aac":
$icon="sound2";
break;
case "tex":
$icon="tex";
case "txt":
case "rtf":
case "log":
$icon="text";
break;
case "zip":
case "rar":
case "gz":
case "bz2":
case "tar":
case "tgz":
case "7z":
case "iso":
$icon="compressed";
break;
default:
$icon="unknown";
break;
}
$listing[$listsize]['filename'] = utf8_encode($item['file']);
$listing[$listsize]['type'] = $icon;
$listing[$listsize]['modified'] = $item['date'];
$listing[$listsize]['size'] = $item['size'];
$listsize++;
}
clearstatcache();
if (!isset($_GET['format']) || $_GET['format'] == "html") {
?>
Index of /