kostenloser Webspace werbefrei: lima-city


php-dateibrowser is_dir()-fehlermeldung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    simuliertes

    Kostenloser Webspace von simuliertes

    simuliertes hat kostenlosen Webspace.

    Hallo.

    Ich wollte "mal eben" einen file-browser auf meiner Homepage installieren (ohne die Möglichkeit irgendwas zu verändern).
    Hab mir dazu 2 verschiedene Code-schnipsel geholt und bei beiden taucht irgendwie eine Fehlermeldung zu "is_dir" auf:

    file-browser nr1:
    http://simuliertes.lima-city.de/dateibrowser.php edit:nicht mehr aktuell, siehe mein nächster post

    die Fehlermeldung: edit:nicht mehr aktuell, siehe mein nächster post
    php schrieb:Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(..) is not within the allowed path(s): (/tmp:/var/tmp:/home/webpages/include/:/home/webpages/tmp:/home/webpages/lima-city/simuliertes/html) in /home/webpages/lima-city/simuliertes/html/dateibrowser.php on line 24


    die codezeile: edit:nicht mehr aktuell, siehe mein nächster post
    // Verzeichnis lesen
    $handle = openDir($dir);
    while ($file = readDir($handle)) {
     $directory[(int) is_dir($file)][] = $file;
    }
    closeDir($handle);


    edit:Ab hier wird's wieder aktuell :biggrin:

    file-browser nr2:
    http://simuliertes.lima-city.de/dateibrowser2.php

    php schrieb:
    Warning: opendir(http://simuliertes.lima-city.de/) [function.opendir]: failed to open dir: not implemented in /home/webpages/lima-city/simuliertes/html/dateibrowser2.php on line 25


    die Code-Zeile:
    if($_GET['pfad'] == "") {
            $pfad = "http://simuliertes.lima-city.de/";
            //$pfad = "file:///D:/programme/Allaire/HomeSite4/Spelling/Projects/baustelle/";
        }else{
            $pfad = $_GET['pfad'];}
    
        // letzte Ebene entfernen
        $ebene_hoch = substr($pfad, 0, strrpos($pfad, "/"));
    
        // aktuellen Pfad festlegen
        $ordnerpfad = $pfad.$ordner;
        // Ordnerinhalt einlesen
    $handle = opendir($ordnerpfad);
    // Inhalt einzeln abarbeiten
    while ($ordner = readdir ($handle))
    {


    file-browser nr2 jedenfalls funktioniert auf meinem rechner im xamp-server ausgezeichnet , ist also der Pfad Falsch? (und welcher ist der richtige?)
    :confused:

    Beitrag zuletzt geändert: 28.2.2009 15:27:24 von simuliertes
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. desaster-productions

    desaster-productions hat kostenlosen Webspace.

    zu 1:

    ohne näheres darüber zu wissen, was in $dir drin steht (wäre gut zu wissen :wink: ) würde ich sagen, du versuchst auf einen anderen ordner als deinen userordner hier zuzugreifen.

    edit: kann es sein, dass lima dich nicht auf den ordner '.' und '..' zugreifen lassen will? is mir grad beim betrachten deiner seite so in den sinn gekommen...



    zu 2:

    was steht bei dir im $_GET['pfad'] für ein wert drinnen? abgesehen davon finde ich auf die schnelle keinen fehler...

    edit: bau die oberen zeilen mal so um, vlt bringts was (ungetestet):
    if(!isset($_GET['pfad']) {
      $pfad = 'http://....'
    } else {
      //Prüfen ob der Wert in GET[pfad] gültig ist
      $pfad=$_GET['pfad'];
    }


    Beitrag zuletzt geändert: 28.2.2009 14:45:05 von desaster-productions
  4. Autor dieses Themas

    simuliertes

    Kostenloser Webspace von simuliertes

    simuliertes hat kostenlosen Webspace.

    Also gut ich habe jetzt ersteinmal beschlossen nur mit nr 2 weiterzumachen und nr 1 fallen zu lassen.


    desaster-productions schrieb:
    zu 2:
    [...]
    edit: bau die oberen zeilen mal so um, vlt bringts was (ungetestet):
    if(!isset($_GET['pfad']) {
      $pfad = 'http://....'
    } else {
      //Prüfen ob der Wert in GET[pfad] gültig ist
      $pfad=$_GET['pfad'];
    }



    Du meintest so?
    if(!isset($_GET['pfad'])) {
             // Wenn kein Pfad übermittelt, root anzeigen
              $pfad = "/home/webpages/lima-city/simuliertes/html";
            } else {
              $pfad=$_GET['pfad'];
            }


    Ich gebe mal den ganzen Code von 2 raus (mit aktuellen änderungen):
    Edit: http://rafb.net/p/PsN5fQ95.html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title></title>
    <meta name="generator" content="Webweaver v1.6.7 [http://webweaver.ws]" />
    </head>
    <body>
     <?
        // Pfadangabe gegen externe Eingaben sichern
        $pfad = str_replace("../", "", $_GET['pfad']);
            if(!isset($_GET['pfad'])) {
             // Wenn kein Pfad übermittelt, root anzeigen
              $pfad = "/home/webpages/lima-city/simuliertes/html";
            } else {
              $pfad=$_GET['pfad'];
            }
    
        echo $pfad."<br>";
        // letzte Ebene entfernen
        $ebene_hoch = substr($pfad, 0, strrpos($pfad, "/"));
    
        // aktuellen Pfad festlegen
        $ordnerpfad = $pfad.$ordner;
        // Ordnerinhalt einlesen
    $handle = opendir($ordnerpfad);
    // Inhalt einzeln abarbeiten
    while ($ordner = readdir ($handle))
    {
        // Link Pfad zum nächsten Ordner erstellen
        $neuerpfad = $pfad."/".$ordner;
        echo "DEBUG:der Pfad der gerade geprüft wird: ".$neuerpfad."<br>";
        // Wenn es sich um einen Ordner handelt
        if(is_dir($neuerpfad))
        {
            if($ordner != "." && $ordner != "..")
             {
                 // Ordner mit einem icon versehen un der Ordnerliste hinzufügen
                 $ordnerliste .= 'Ordner: <a href="dateibrowser3.php?pfad='.$neuerpfad.'"><b>'.$ordner.'</b></a><br />';
             }
        }
           // Wenn es sich nicht um einen Ordner handelt
        else
        {
            // Wenn es sich um eine Bilddatei handelt…
            if(substr($ordner, strrpos($ordner, ".")) == ".jpg" or
               substr($ordner, strrpos($ordner, ".")) == ".jpeg" or
               substr($ordner, strrpos($ordner, ".")) == ".gif" or
               substr($ordner, strrpos($ordner, ".")) == ".png")
            {
                // …wird der entsprechende Link erstellt
                $images .= 'BILD: <a href="'.$pfad.'/'.$ordner.'">'.$ordner.'</a><br />';
            }
    
                // Wenn es sich um eine .xml Datei handelt…
            elseif(substr($ordner, strrpos($ordner, ".")) == ".xml")
            {
                // …wird der entsprechende Link erstellt
                $xmls .= 'XML: <a href="'.$pfad.'/'.$ordner.'">'.$ordner.'</a><br />';
            }else{
                  // Alle anderen Dateien
               $sonstige .= 'sonstige: <a href="'.$pfad.'/'.$ordner.'">'.$ordner.'</a><br />';
            }
    
        }
    } // Ende der While Schleife
        // Ausgabe der Navigation
    echo '<div>aktueller Pfad: '.$ordnerpfad.'</div>
    <!--       <a href="dateibrowser3.php?pfad=."><b>-> zum Startverzeichnis</b></a><br /> -->
          <a href="dateibrowser3.php?pfad=.."><b>–> ...</b></a><br /><br />';
    
    // Ausgabe der Listen
    echo '<div><b>Ordner</b></div>'.$ordnerliste.'<br />
          <div><b>XML-Dateien</b></div>'.$xmls.'<br />
          <div><b>Bild-Dateien</b></div>'.$images.'<br />
          <div><b>restl-Dateien</b></div>'.$sonstige.'<br />
          ';
    ?>
    
    </body>
    </html>


    neue URL mit diesen Code:
    http://simuliertes.lima-city.de/dateibrowser3.php

    1. also anscheinend hat er probleme mit dieser url: "/home/webpages/lima-city/simuliertes/html/."
    2. was zur hölle ist denn eig. mein root-verzeichniss? http://simuliertes.lima-city.de ist es jedenfalls nicht oder?
    3.geh mal auf den Ordner "Travian" , plötzlich ist alles gut :eek:
    aber wenn ich wieder zurück will kommen gleich 3 fehlermeldungen (auf "..." klicken)



    Beitrag zuletzt geändert: 28.2.2009 15:33:49 von simuliertes
  5. desaster-productions

    desaster-productions hat kostenlosen Webspace.

    so meinte ich :)

    also ich geh jetz vom dateibrowser3 aus:

    der mag es nicht, wenn du auf den ordner '..' zugreifen willst, wahrscheinlich, weil der schon nicht mehr dir gehört ;)
    prüfe den aktuellen ordner, ob der nicht '..' ist, und dann das ganze mit is_dir...


    also 1) falsch, nur den "unterordner" .. nicht, der der übergeordnete ordner ist
    zu 2) ich geh mal davon aus, dass es html ist
    und 3) kA soviel zum denken, schließ erst mal 1 aus und check das dann nochmal *g*

    Beitrag zuletzt geändert: 28.2.2009 21:11:48 von desaster-productions
  6. Autor dieses Themas

    simuliertes

    Kostenloser Webspace von simuliertes

    simuliertes hat kostenlosen Webspace.

    desaster-productions schrieb:
    also 1) falsch, nur den "unterordner" .. nicht, der der übergeordnete ordner ist
    zu 2) ich geh mal davon aus, dass es html ist
    und 3) kA soviel zum denken, schließ erst mal 1 aus und check das dann nochmal *g*


    juhhuu ich konnte es fixen :king:

    Thnks des-pro, jetzt funktioniert es :biggrin:

    if($ordner!="..")$neuerpfad = $pfad."/".$ordner;


    und dann noch im "zurück"-link aus
    http://simuliertes.lima-city.de/dateibrowser4.php?pfad=..
    einen punkt weggenommen
    http://simuliertes.lima-city.de/dateibrowser4.php?pfad=.

    Alles klar also thnks für die Hilfe :thumb:
    (verstehen und Sicherheitslücken schließen kommt später :smokin:)

    Beitrag zuletzt geändert: 28.2.2009 16:34:48 von simuliertes
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!