ďťż
Podstrony
|
telcocafeWitam !Napisalem skrypt do przemieszczania sie po katalogach na moim koncie www. Kod: <?php $katalog=strip_tags($_GET['katalog']); if($katalog!=="../") { $kh = opendir($katalog); while(gettype($plik=readdir($kh)) !=boolean) { if($plik=="./" OR $plik=="../") {} if(is_dir("$plik")) { print "<a href=\"index.php?katalog=$katalog$plik/\">$plik"; print "</a><br />"; } elseif(is_file("$plik")) { echo "<a href=$plik>$plik"; echo "</a><br/>"; } } closedir($kh); } else { $sciezka=FALSE; echo "<p class=\"no\">Coś nie pykło? :]</p>"; } echo "<br><br>$katalog</br>"; ?> i ... skrypt działa, ale : 1.jesli w katalogu sa inne pliki niz txt to mi ich nie drukuje :( 2.jesli wejdzie sie w jakis katalog to w pierwszej linii jest jakas kropka (niby do cofania) ale jak sie w nia kliknie to sie nie cofa do katalogu nadrzednego, tylko zmienia adres na jakis dziwny ( bardziej nie umiem wytlumaczyc xD ) 3.to samo co wyzej, z tym ze są dwie kropki I teraz pytanie... Co musze zmienic, aby mozna bylo bez problemu chodzic po katalogach? Drugi problem bym tam spróbował rozwiązać: if($plik=='.'||$plik=='..') {} czyli usunął slashe Manual PHP: readdir() Sposób w jaki zwrócona przez readdir() wartość powinna być sprawdzona, obrazuje poniższy przykład. Należy sprawdzić czy zwrócona wartość jest równa (jest tego samego typu -- zobacz również Comparison Operators) FALSE. W przeciwnym razie plik o nazwie FALSE (jak również "0") znajdujący się w czytanym katalogu zatrzymał by pętle. Proponuję skorzystać z funkcji scandir() - Manual edit> quote added Użytkownik orglee edytował ten post 28 styczeń 2007, 15:30 hm.. a tak po łopatologicznemu umiesz mi wytlumaczyc, bo ja nie kumam :( scandir() jest funkcją dostępną od PHP5. Jest łatwiejsza w użyciu:
ll zwraca jest tablica którą możesz użyć w pętli ( na przykład foreach()l edit> Więc wejdź na link powyżej. (pierwsza linijka mojego poprzedniego postu) Przeczytaj o funkcji scandir() i użyj jej żeby pobrać zawartość katalogu. Jeśli nie będziesz potrafił tego zrobić to napiszę ci ten prosty skrypt, ale dopiero za godzinę bo teraz nie mam czasu. Użytkownik orglee edytował ten post 28 styczeń 2007, 15:59 nie mam obslugi PHP 5 na serwerze ... :) ja wiem, co robi moj skrypt, ale nie wiem, dalczego tak sie dzieje, jak sie dzieje ... Gdbys mogl to bardzo prosze :) <?php $katalog=strip_tags($_GET['katalog']); if($katalog!=="../") { $kh = opendir($katalog); while(!is_bool($plik=readdir($kh))) { if($plik=="./" OR $plik=="../") {} if(is_dir("$plik")) { print "<a href=\"index.php?katalog=$katalog$plik/\">$plik"; print "</a><br />"; } elseif(is_file("$plik")) { echo "<a href=$plik>$plik"; echo "</a><br/>"; } } closedir($kh); } else { $sciezka=FALSE; echo "<p class=\"no\">Coś nie pykło? :]</p>"; } echo "<br><br>$katalog</br>"; ?> Edit> I włącz sobie w php.ini żeby ci pokazywał wszystkie błędy ostrzeżenia też. ; Examples: ; ; - Show all errors, except for notices and coding standards warnings ; ;error_reporting = E_ALL & ~E_NOTICE ; ; - Show all errors, except for notices ; ;error_reporting = E_ALL & ~E_NOTICE | E_STRICT ; ; - Show only errors ; ;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR ; ; - Show all errors except for notices and coding standards warnings ; error_reporting = E_ALL Użytkownik orglee edytował ten post 28 styczeń 2007, 16:32 dzieki :) |
|||
Sitedesign by AltusUmbrae. |