Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] listowanie i przegladanie folderow/plikow - problem, cos sie posypuje ...
wilman
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 11.02.2007

Ostrzeżenie: (0%)
-----


Witam!
Mam kod, który listuje mi zawartość katalogu. Katalog pobierany jest z adresu strony np index.php?katalog=./ , chciałbym zrobić tak, żeby można było swobodnie poruszać się po katalogach, a jeśli w katalogu są pliki to wydrukować do nich bezpośrednie linki np. qwe/rty/uiop/plik.rozszerzenie . W moim przypadku listowanie katalogu działa ale tylko do drugiego poziomu, a dalej drukuje mi nie taką ścieżkę jaką powinien. Czysto dla sprawdzenia w kodzie umieściłem żeby drukował [plik] lub [katalog] w zależności od typu drukowanej zawartości, ale przy drugim poziomie (katalog w katalogu) już się sypie bo przy folderach drukuje [plik].
  1. <? 
  2. if(empty($_GET['sciezka'])) { $_GET['sciezka']='./'; } 
  3. $folder = htmlspecialchars(nl2br(strip_tags($_GET['sciezka'])));
  4.  
  5. echo "Znajdujesz się w <b>$sciezka</b><br/><a href="javascript:history.go(-1)">[wróć]</a><br /> ";
  6. $dir = dir($folder);
  7. while ($file = $dir->read()) {
  8.  
  9. if (is_dir($file)) {
  10. $folder = substr($folder, 1);
  11. $adres = "<a href="index.php?sciezka=./$folder$file">$file [katalog]</a> n ";
  12. if (!(($file=='.') || ($file=='..')))
  13. $d[] = '[ '.$adres.' ]';
  14. } else {
  15. $adres = "<a href="/$folder/$file">$file [plik]</a>n ";
  16. $l[] = $adres; } 
  17. }
  18. $dir->close();
  19. if ((isset($d)) && (count($d)<>0))
  20. {
  21.  sort($d);
  22.  for ($i=0;$i<count($d);$i++)
  23. echo $d[$i]."<br />rn";
  24. }
  25. if ((isset($l)) && (count($l)<>0))
  26. {
  27.  sort($l);
  28.  for ($j=0;$j<count($l);$j++)
  29. echo $l[$j]."<br />rn";
  30. } else
  31.  echo('Katalog jest pusty!');
  32. ?>



Gdyby ktoś mógł mi pomóc, byłbym wdzięczny
Pozdrawiam

pe-es: jak zabezpieczyć ten skrypt ?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 08:25