Avatar billede ulle55 Nybegynder
24. november 2004 - 14:09 Der er 13 kommentarer og
1 løsning

Visning af dir fortsat

Dette er et opfølgnings spørgsmål til tråd nr 564150

Jeg 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>
Avatar billede schaefner Juniormester
24. november 2004 - 14:12 #1
Hvis der bare ikke skal vlære et link til forrige mappe, så prøv:

<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) {
        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>
Avatar billede ulle55 Nybegynder
24. november 2004 - 14:19 #2
Nu skal jeg lige være med, hvad er ændret?
Avatar billede schaefner Juniormester
24. november 2004 - 14:23 #3
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>"; }
    }

er ændret til:

foreach($directories_array as $value) {
        echo "<tr><td><a href=\"$value\">$value</a><b>/</b></td><td></td><td>".gmdate("d M Y H:i",filemtime($value))."</td></tr>"; }
    }
Avatar billede ulle55 Nybegynder
24. november 2004 - 14:30 #4
Det eneste den gør nu, er at linke til forrige mappe
Avatar billede schaefner Juniormester
24. november 2004 - 14:48 #5
Prøv at rette:

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>"; }
    }

Til:

    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 != "..") {
            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>";
        }
    }
Avatar billede ulle55 Nybegynder
24. november 2004 - 15:12 #6
Hvis jeg ændre  $directory = dir("./members/"); til  $directory = dir("./");
Så kommer der noget frem. Men den viser kun mapper, ingen filer
Avatar billede ulle55 Nybegynder
24. november 2004 - 15:13 #7
Har du evt en løsning, så man ikke kan se .php filer i mappen, for så må jeg ligge filen i mappen
Avatar billede schaefner Juniormester
24. november 2004 - 15:49 #8
Jeg har desværre først tid til at kigge videre på det senere i dag.
Avatar billede schaefner Juniormester
24. november 2004 - 23:11 #9
Avatar billede ulle55 Nybegynder
25. november 2004 - 08:05 #10
ja, noget lignende det
Avatar billede schaefner Juniormester
25. november 2004 - 08:38 #11
Avatar billede schaefner Juniormester
01. december 2004 - 08:32 #12
Kan du bruge det?
Avatar billede ulle55 Nybegynder
08. marts 2005 - 09:20 #13
Ja, vil du svare???
Avatar billede schaefner Juniormester
08. marts 2005 - 17:00 #14
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester