Avatar billede sebster Nybegynder
15. september 2010 - 13:45 Der er 9 kommentarer og
1 løsning

Lav opdaterende directory string

Hej Eksperter,

jeg er ved at lave en lille oprettet et lille sted på min webserver hvor jeg kan browse i filerne.
Men er stødt ind i et problem mht. når jeg vil gå ind i mapper og tilbage, skal nemlig have lavet om på en directory-string.

min variable $dir, hedder som standard: $dir="images/";

Nå man klikker på en mappe med en variabel skal den tilføjes:

$dir="images/undermappe/";

Og dette skal fortsætte således at endnu en variable sendes og så hedder den

$dir="images/undermappe/undermappe/";

osv. Hvordan går man det smartest?
Avatar billede repox Seniormester
16. september 2010 - 08:42 #1
Mange gør det at de linker simpelt - dit største problem er kun at sikre dig at man ikke går for langt tilbage.

<?php

  $dir = "images/";
  if( isset($_GET["dir"])  && strlen($_GET["dir"]) > 0 && !preg_match("/\.\.\//", $_GET["dir"]) )
    $dir .= $_GET["dir"] . "/";

  $filer = glob

  $files = glob($dir."*");
 
  foreach( $files as $file )
  {
    if(is_dir($file))
      echo "<a href=\"?dir=".$file."\">".$file."</a><br />";
    else
      echo $file."<br />";
  }


?>


Jeg ved ikke om det lige var det du efterlyste, men idéen er der og den fungerer temmelig simpelt.
Avatar billede sebster Nybegynder
16. september 2010 - 14:32 #2
Det ser dejlig simpelt ud, men den skriver intet!

Står det rigtigt med $filer = glob?
Avatar billede repox Seniormester
16. september 2010 - 14:36 #3
hehe... nej, det var en tanketorsk... fjern den linie...
Avatar billede sebster Nybegynder
16. september 2010 - 14:43 #4
Så får jeg kun en fejl

Mit start directory kommer med første gang man klikker. Dvs. at images står to gange! kan det fjernes?
Avatar billede repox Seniormester
16. september 2010 - 14:47 #5
Jeg er ikke sikker på hvordan du får det til at stå to gange? Mener du i adressebaren?
Avatar billede sebster Nybegynder
16. september 2010 - 15:15 #6
For at det skal virke for mig skal $dir=../images/;

Men det er som om at det så ikke virker bagefter! ved ikke hvad det er!

Det er meningen man skal browse mappen images hvor man kan oprette flere undermapper i forskellige niveauer!

Hvordan kan dette gøres?
Avatar billede repox Seniormester
16. september 2010 - 18:14 #7
Prøv lige at indsætte den kode du bruger nu...
Avatar billede jantzen88 Nybegynder
22. september 2010 - 22:03 #8
Har lige rettet lidt i dit script #1


<?php

  $home_dir = "images/";
 
  if(isset($_GET["dir"]) && strlen($_GET["dir"]) > 0 && !preg_match("/\.\.\//", $_GET["dir"]) )
    $dir = $_GET["dir"] . "/";
  else
    $dir = $home_dir;

  $files = glob($dir."*");
 
  foreach( $files as $file )
  {
    if(is_dir($file))
      echo "<a href=\"?dir=".$file."\">".$file."</a><br />";
    else
      echo $file."<br />";
  }

?>
Avatar billede sebster Nybegynder
07. oktober 2010 - 14:07 #9
Så fik jeg det til at virke smid venligst et svar!
Avatar billede repox Seniormester
07. oktober 2010 - 14:12 #10
Det fik du her...
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