Visning af dir fortsat
Dette er et opfølgnings spørgsmål til tråd nr 564150Jeg fik et svar om at man skulle ændre
if (!isset($path)) { $path = "./"; }
Nu har jeg kigget nærmere på det. Det viser sig at når man ændre det der hvor du siger, så kan man trykke på linket ../ og så se indholdet af mappen før. Hvordan kan jeg lave om på det?
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Till Biedermann" />
<meta name="description" content="directory listing" />
<title>Directory listing powered by TBmnet.de</title>
<style type="text/css">
body { font-family: Tahoma, sans-serif; }
img { border: 0px;
margin-top: 6px; }
h2 { background-color: #eeeeee;
color: #c0c0c0;
letter-spacing: .2em;
padding: .2em;
text-align: center;
border-top: solid #aaaaaa 1px;
border-bottom: solid #aaaaaa 1px; }
table { border-collapse: collapse;
margin-left: auto;
margin-right: auto;
margin-bottom: 10px;
border: solid #dddddd 1px; }
th { background-color: #dddddd; }
td { padding: 2px 10px 2px 10px;
background-color: #ffffff;
border: solid #dddddd 1px;}
a { text-decoration: none;
font-weight: bold; }
.black { color: #000000; }
</style>
</head>
<body>
<?php
// false - don't allow switching to the parent-directory of this script
// true - allow simple switching to the parent-directory (via 'href')
$allow_parent = "false";
//configuration ends here---------------------------------------------------------------------------------------------------------------------------
//=======================================================================================
$path=$_GET["path"];
$SCRIPT_NAME=getenv("SCRIPT_NAME");
//put directory content in arrays-----------------------------------------------------------------------------------------------------------------
if (!isset($path)) { $path = "./"; }
if (!file_exists($path)) { echo "<h2>File not found!</h2>"; exit; }
if (strstr($path,"..")) { echo "<h2>invalid path!</h2>"; exit; }
$base_dir = getcwd();
chdir($path);
$current_dir = getcwd();
$directory = dir("./members/");
$directories_array = array();
$files_array = array();
while ($file = $directory->read()) {
if (is_dir($file) AND $file != ".") { $directories_array[] = $file; }
if (is_file($file)) { $files_array[] = $file; }
}
$directory->close();
//sort and output the arrays-----------------------------------------------------------------------------------------------------------------------
echo "<h2>Directory listing for <span class=\"black\">".basename($current_dir)."</span></h2>";
echo "<table>";
echo "<tr><th>Name</th><th>Size</th><th>Date</th></tr>";
sort($directories_array);
foreach($directories_array as $value) {
if ($value=="..") { $new_path=strrev(substr(strstr(substr(strstr(strrev($path),"/"),1),"/"),1)); }
else { $new_path=$path.$value; }
if (($value != "..") OR ($base_dir != $current_dir)) {
echo "<tr><td><a href=\"$_SERVER[PHP_SELF]?side=./members/indexer.php&path=".urlencode($new_path."/")."\">$value</a><b>/</b></td><td></td><td>".gmdate("d M Y H:i",filemtime($value))."</td></tr>"; }
elseif ($allow_parent == "true") {
echo "<tr><td><a href=\"$value\">$value</a><b>/</b></td><td></td><td>".gmdate("d M Y H:i",filemtime($value))."</td></tr>"; }
}
sort($files_array);
foreach($files_array as $value) {
if($value != basename($SCRIPT_NAME) or $path!="./") {
$filesize=filesize($value);
if ($filesize > 1073741823) { $filesize = sprintf("%.1f",($filesize/1073741824))." GB"; }
elseif ($filesize > 1048575) { $filesize = sprintf("%.1f",($filesize/1048576))." MB"; }
elseif ($filesize > 1023) { $filesize = sprintf("%.1f",($filesize/1024))." kB"; }
else { $filesize = $filesize." byte"; }
echo "<tr><td><a href=\"$path$value\">$value</a></td><td>$filesize</td><td>".gmdate("d M Y H:i",filemtime($value))."</td></tr>";
}
}
echo "</table>";
//footer-----------------------------------------------------------------------------------------------------------------------------------------------------
?>
</body>
</html>
