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
 
Start new topic
Odpowiedzi
Wave
post
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


  1. <? 
  2. if( empty( $_GET['sciezka'] ) ) $_GET['sciezka'] = './';
  3. $folder = htmlspecialchars( nl2br( strip_tags( $_GET['sciezka'] ) ) );
  4.  
  5. echo 'Znajdujesz się w <b>' . $folder . '</b><br /><a href="java script:history.go(-1)">[wróć]</a><br />';
  6. $dir = dir($folder);
  7. $l = $d = array();
  8. while( $file = $dir->read() )
  9. {
  10. if( is_dir( $folder . $file ) )
  11. {
  12. if( $file != '.' && $file != '..' )
  13. $d[] = '[ <a href="?sciezka=' . $folder . $file . '/">' . $file . '</a> ]';
  14. }
  15. else $l[] = '<a href="' . $folder . $file . '">' . $file . '</a>'; 
  16. }
  17. $dir->close();
  18.  
  19. if( !empty( $d ) )
  20. {
  21. sort( $d );
  22. for( $i=0; $i<count($d); $i++ ) echo $d[$i] . "<br />rn";
  23. }
  24. if( !empty( $l ) )
  25. {
  26. sort( $l );
  27. for( $j=0; $j<count($l); $j++ ) echo $l[$j]."<br />rn";
  28. } else echo('Katalog jest pusty!');
  29. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 17:11