vermutlich nur ein kleines problem!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • vermutlich nur ein kleines problem!

    hallo zusammen, ich bin derzeit dabei eine webseite für meine freundin zu gestalten und genau genommen bin ich auch schon recht weit, doch jetzt habe ich ein problem welches ich nicht in den griff bekomme und ich glaube das es ein ganz einfaches ist und ich lediglich ein brett vorm kopf habe. ih hoffe ihr könnt mir helfen!

    also, folgendes script:
    PHP-Code:
    <? include "header.inc.php3"; 

    // *************** CONST ***************

    $me = basename($PHP_SELF);
    $basepath = "schule/";

    if (strstr($ext,"/..") OR strstr($ext,"../")) die("<p>&nbsp;&nbsp;zerstört!");

    $ext = $ext."/";
    $path = $SERVER_NAME.dirname($PHP_SELF).$ext;

    $folder = dir($basepath.$ext);
    $i=0;
    $i2=0;
    $foldersize=0;


    // *************** read() ***************

    while ($datei = $folder->read())
     {
         $i++;
         if ($i > 2 AND $datei != $me)
          {
            $files[$i-2]=$datei;
          }
     }
    if (!isset($files[1])) $files[1] = "Keine Daten gefunden!";

     
    // *************** sort ohne casesensitivty ***************

    natcasesort($files);


    // *************** auswertung ***************

    foreach($files as $key=>$datei)
          {
              $i2++;
              $datei = $basepath.$ext.$datei;

              if (is_dir($datei)) $dir = "1"; else $dir = "0";
              $filename = basename($datei);
              $filesize = @number_format(filesize($datei) / 1024,2,"",".");
                $foldersize += @filesize($datei) / 1024;
              $filedate = @date("d/m/y - H:i",filemtime($datei));

              $field[$i2] = array (
                "dir"       => $dir,
                "filename"  => $filename,
                "filesize"  => $filesize,
                "filedate"  => $filedate
                 );
          }
          
    // *************** formatierung ***************

    function format_arr($str)
     {
         global $ext, $path;
         if ($str[dir] == "1")
           {
               $icon = "dir";
               $href = "?ext=".$ext.$str[filename];
           }
         else
           {
               $icon = "file";
               $filesize = $str[filesize]." Kb";
               $href = $path.$str[filename];
               $href = "http://".str_replace("//", "/", $href);
           }
         
            echo  "
                            <tr>
                                <td width=\"15\" align=\"center\" 
    bgcolor=\"#87CEFF\"><img src=\"images/".$icon.".gif\"></td>

                                <td width=\"*%\" class=\"text\" 
    bgcolor=\"#87CEFF\"><a href=\"".$href."\">$str[filename]</a></td>

                                <td class=\"textn\" width=\"80\" 
    align=\"center\" bgcolor=\"#87CEFF\">
    <font size=\"1\">$filesize</font></td>
                                <td class=\"textn\" width=\"110\" 
    align=\"center\" bgcolor=\"#87CEFF\">
    <font size=\"1\">$str[filedate]h</font></td>
                            </tr>";
     }

            echo "            
                <table width=\"100%\" align=\"center\" cellspacing=\"1\"
     cellpadding=\"5\">
                            <tr>
                                <td align=\"center\" colspan=\"4\" 
    valign=\"top\">
                                <a href=\"javascript:history.go(-1)\">
    zurück</a>
                                </td>
                            </tr>
                            <tr>
                                <td class=\"textn\">
                                </td>
                                <td class=\"textn\" align=\"left\">
                                Name
                                </td>
                                <td class=\"textn\" align=\"center\">
                                Größe
                                </td>
                                <td class=\"textn\" align=\"center\">
                                Datum
                                </td>
                            </tr>";

    foreach ($field as $key => $echo)
     {
         if ($echo[dir] == "1")
          {
            format_arr($echo);
          }
     }
     
    foreach ($field as $key => $echo)
     {
         if ($echo[dir] == "0")
          {
            format_arr($echo);
          }
     }

     if ($foldersize > 1024*1024) { 
        $foldersize /= 1024*1024; $foldersize = number_format($foldersize,2)." gb"; 
            }
            
     elseif ($foldersize > 1024) { 
        $foldersize /= 1024; $foldersize = number_format($foldersize,2)." mb"; 
            }
            
     else $foldersize = number_format($foldersize,2)." kb";
            
            echo "
                </table>
                <table width=\"100%\" align=\"center\">
                                <tr>
                                    <td class=\"textn\" 
    align=\"center\" width=\"100%\">
                                    <font size=\"1\">";echo $i-2;
     echo " Objekt(e) belegen $foldersize</font>
                                    </td>
                                </tr>
                </table>";

    include "footer.inc.php3"; ?>
    sorgt dafür das meine freundin ihre schulsachen hochladen kann (per ftp) und diese dann von dem script angezeigt werden, mit unterordner etc. (das script habe ich nicht selber geschrieben, sondern mal irgendwo als snippet oder so gefunden, ist schon länger her).
    das problem ist jetzt das wenn ich nun eine datei öffnen möchte das script den hauptpfad nicht erkennt, das heist:

    das script liegt in "htdocs" und es startet seine arbeit in "htdocs/schule/" wenn ich jetzt aber in "htdocs/schule/englisch/fairy tales/" gehe und dort eine datei öffnen möchte so fehlt dem script der pfad "schule" und es verweist auf "htdocs/englisch/fairy tales/"

    ich hab schon ne ganze menge ausprobiert (in meinen augen alles was mir möglich war) aber ich komme nicht drauf und ich bin leider auch nicht der crack in sachen php, ich hoffe das einer von euch mir da helfen kann.

    ihr könnt euch mal anschauen wie es arbeitet unter: http://www.mitglied.lycos.de/seril312/school.php3
    Zuletzt geändert von asp2php; 20.09.2004, 15:42.
    ich bin ich...

  • #2
    du hast kein $basepath in $href = $path.$str[filename]; angegeben

    Kommentar


    • #3
      doch, das habe ich auch schonmal probiert, das funktionierte leider nicht!
      ich bin ich...

      Kommentar


      • #4
        und wie hast du's probiert? Vergisst nicht, dass $basepath lokal in der Fkt. unbekannt ist!

        Kommentar


        • #5
          was heist das?? was muss ich anders machen?
          ich bin ich...

          Kommentar


          • #6
            zeige erstmal wie du gemacht hast.

            Kommentar


            • #7
              was muss ich anders machen?
              keine ahnung, was hast du denn gemacht?
              edit:
              OffTopic:
              mime heute das echo von asp
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                function format_arr($str)
                {

                $basepath = "schule/"; /***************die variable in der function beschrieben

                global $ext, $path;
                if ($str[dir] == "1")
                {
                $icon = "dir";
                $href = "?ext=".$ext.$basepath.$str[filename]; /*********hier dann eingesetzt (an anderen stellen aber auch, jedoch ohne erfolg, ich blicke da glaube ich nicht so ganz durch )
                }
                else
                {
                $icon = "file";
                $filesize = $str[filesize]." Kb";
                $href = $path.$str[filename];
                $href = "http://".str_replace("//", "/", $href);
                }

                echo "
                <tr>
                <td width=\"15\" align=\"center\" bgcolor=\"#87CEFF\"><img src=\"images/".$icon.".gif\"></td>
                <td width=\"*%\" class=\"text\" bgcolor=\"#87CEFF\"><a href=\"".$href."\">$str[filename]</a></td>
                <td class=\"textn\" width=\"80\" align=\"center\" bgcolor=\"#87CEFF\"><font size=\"1\">$filesize</font></td>
                <td class=\"textn\" width=\"110\" align=\"center\" bgcolor=\"#87CEFF\"><font size=\"1\">$str[filedate]h</font></td>
                </tr>";
                }
                ich bin ich...

                Kommentar


                • #9
                  du arbeitest mit register_globals = On? (weil es drunter und drüber mit den Variablen bei dir ist)

                  Warum integrierst du $basepath nicht in $path sondern $ext.$basepath, hier kann was schief gehen, weil bei einer Directory du somit $basepath mehrmals dran hängst.

                  die richtige Stelle ist:
                  $href = $path.$str[filename]; // <-------hier
                  $href = "http://".str_replace("//", "/", $href);
                  d.h. wenn du
                  $path = $SERVER_NAME.dirname($PHP_SELF).'/'.$basepath.$ext;
                  machst, sollte es eigentlich gehen, es sei denn ich hab' was übersehen (bei dem durcheinander, wundert es mich nicht )

                  Kommentar


                  • #10
                    hm, also das übersteigt leider meine kompetenz... es klappt gar nix! für das durcheinander kann ich gar nix, das script hab ich doch gar nicht selber geschrieben *schähm*

                    was genau soll ich jetzt machen? (bitte so erklären als ob ich 5 jahre alt wäre, sonst hats glaub ich keinen sinn weil ichs dann nicht verstehe! =P)
                    ich bin ich...

                    Kommentar


                    • #11
                      alles klar, ich hab den falschen teil im script bearbeitet... hab jetzt die richtige stelle gefunden und durch folgendes ersetzt "$path = $SERVER_NAME.dirname($PHP_SELF).'/'.$basepath.$ext;"

                      es klappt endlich, VIELEN DANK
                      ich bin ich...

                      Kommentar

                      Lädt...
                      X