Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z bardzo uproszczoną galerią
covall
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 9.03.2004
Skąd: Stalowa Wola

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


Witam. Napisałem bardzo prosty skrypt galerii, jeżeli można to nazwać galerią winksmiley.jpg... jest to skrypt, który pobiera wszystkie obrazki z danego katalogu. Możecie zobaczyć go pod tym adresem. Problem polega na tym, iż przed każdym obrazkiem wywala taki błąd sad.gif:
Cytat
Warning: filetype(): Lstat failed for (null) (errno=2 - No such file or directory) in /var/www/html/gallery.php on line 6


Hmm... nie wiem za bardzo co jest źle... poniżej kod:
  1. <?
  2. $dir = &#092;"./screen/sa/skany/\";
  3. if (is_dir($dir)) {
  4. $dh = opendir($dir);
  5. while ($file = readdir($dh)) {
  6. if(filetype($file) != &#092;"dir\")
  7. echo &#092;"<A class=image HREF=$dir$file target=_blank><IMG SRC=$dir$file WIDTH=100 HEIGHT=100 BORDER=0></A>n\";
  8. }
  9. closedir($dh);
  10. }
  11. ?>


Z góry dziękuję za każdą, nawet najmniejszą pomoc.
Go to the top of the page
+Quote Post
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Zmień while na coś takiego:
while (false !== ($file = readdir($dh)))


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
komar07
post
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 17.06.2004
Skąd: ke ?

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


Proponuje ci cos takiego

  1. <?php
  2.  
  3. if (preg_match(&#092;"/.(jpeg|jpg|jpe|png|gif|bmp)$/i\",$file))
  4.  
  5. ?>


W ten sposob unikniesz bledow jezeli do katalogu dostanie ci sie jakis inny plik niz graficzny
Go to the top of the page
+Quote Post
kicaj
post
Post #4





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Cytat(komar07 @ 2004-06-22 16:43:32)
Proponuje ci cos takiego
...
W ten sposob unikniesz bledow jezeli do katalogu dostanie ci sie jakis inny plik niz graficzny

Calkowity offtopic.gif

Przeciez chodzi ze funkcja filetype" title="Zobacz w manualu PHP" target="_manual() zwraca blad, pisze ze jest nieprawidlowy argument, nie odnajduje pliku...


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
mike
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


A może tak :
  1. <?php
  2. // ...
  3. while ( $file = readdir( $dh ) ) 
  4. {
  5. if( ( $file != &#092;".\" ) && ( $file != \"..\" ) && ( filetype( $file ) != \"dir\" ) )
  6. {
  7. // ...
  8. }
  9. ?>
Go to the top of the page
+Quote Post
covall
post
Post #6





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 9.03.2004
Skąd: Stalowa Wola

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


Już jest wszystko OK. Wszystkim dziękuję za pomoc. Akurat skorzystałem z kodu komara07, dzięki temu mam też zabezpieczenie przed innymi plikami smile.gif.

kszychu -> wykorzysując Twój kod otrzymywałem taki sam efekt, jak na początku, oczywiście usuwając tą linijkę
  1. <?php
  2. if(filetype($file) != &#092;"dir\")
  3. ?>

Daje jeszcze kod, w razie gdyby kiedyś komuś mógł się przydać winksmiley.jpg
  1. <?
  2. $dir = &#092;"./screen/sa/skany/\";
  3. if (is_dir($dir)) {
  4. $dh = opendir($dir);
  5. while ($file = readdir($dh)) {
  6. if (preg_match(&#092;"/.(jpeg|jpg|jpe|png|gif|bmp)$/i\",$file))
  7. echo &#092;"<A class=image HREF=$dir$file target=_blank><IMG SRC=$dir$file WIDTH=100 HEIGHT=100 BORDER=0></A>n\";
  8. }
  9. closedir($dh);
  10. }
  11. ?>

Uważam, że temat można zamknąć.

Ten post edytował covall 22.06.2004, 21:07:06
Go to the top of the page
+Quote Post
komar07
post
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 17.06.2004
Skąd: ke ?

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


Cytat(kicaj_ @ 2004-06-22 14:49:07)
Cytat(komar07 @ 2004-06-22 16:43:32)
Proponuje ci cos takiego
...
W ten sposob unikniesz bledow jezeli do katalogu dostanie ci sie jakis inny plik niz graficzny

Calkowity offtopic.gif

Przeciez chodzi ze funkcja filetype" title="Zobacz w manualu PHP" target="_manual() zwraca blad, pisze ze jest nieprawidlowy argument, nie odnajduje pliku...

Zwraca blad bo wykrywa ./ lub ../ a nie plik dlatego sie wysypuje wiec o to chodzilo.
Go to the top of the page
+Quote Post

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: 22.08.2025 - 02:14