Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z bardzo uproszczoną galerią
Forum PHP.pl > Forum > PHP
covall
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.
kszychu
Zmień while na coś takiego:
while (false !== ($file = readdir($dh)))
komar07
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
kicaj
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...
mike
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. ?>
covall
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ąć.
komar07
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.