Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czemu galeria nie działa?
Forum PHP.pl > Forum > PHP
blackjohn
Witam. Mam problem. Zrobiłem sobie prosta galerie w php (książkowy przykład) Wszystko działa ładnie na moim kąpie (mam zainstalowanego krasnala) jednak jak wrzucę sobie moja galerie na serwer pojawia się błąd:

Warning: opendir(./trening/mini\) [function.opendir]: failed to open dir: No such file or directory in /home/meglivorn/ftp/meglivorn/galeria/gal.php on line 12

Oto cały kod funkcji tworzącej galerie:

  1. <?php
  2.  
  3. function galeria($g){ //$g nazwa katalogu z obrazkami
  4. echo('<TR>');
  5. $img="./$g/photo\\";   //Obrazki
  6. $mini="./$g/mini\\";    //Miniatury
  7. $cols=5;                     //Ilość obrazków w lini 
  8. $width=150;                //szerokość obrazka
  9. $counter=1;                //licznik
  10.  
  11. if(!($fd=opendir($mini))) exit;  //12 lin. według komunikatu tu gdzieś jest błąd 
  12. while (($file=readdir($fd)) !==false){
  13.   if($file!="." && $file !=".."){
  14.     $name=substr($file, 0,strlen($file)-4);
  15.     $name= $name.".jpg";
  16.     echo("\r\n<TD align=\"center\" valign=\"middle\">\r\n");
  17.     echo("<A class=menu HREF=\"$img$name\">");
  18.     echo("<IMG SRC=\"$mini$file\">");
  19.     echo("</A>");
  20.     echo("\r\n</TD>\r\n");
  21.     if(($counter>=$cols) && (($counter % $cols)==0)){
  22.         echo("\r\n</TR>\r\n");
  23.     }
  24.     $counter++;
  25.    }
  26. }
  27. echo("\r\n</TR>\n\r");
  28. closedir($fd);
  29. }
  30.  
  31. ?>


Bardzo proszę o szybko odpowiedz. Najlepiej opatrzoną poprawioną wersją kodu.

Z góry dzieki

Na przyszłość proszę o używanie odpowiednich znaczników bbcode. Z góry dzięki /kszychu/
zbig13
No przecież błąd mówi, że "Nie ma takiego pliku lub katalogu". czyli są dwie możliwości:
- nie utworzyłeś katalogu na serwerze
- podajesz złą nazwę katalogu w skrypcie
blackjohn
Wiem, że się nasuwa od razu taka myśl. Ale Cały wic polega na tym, że te katalogi są. A ścieżka jest na pewno dobra. Zresztą tak jak mówiłem na kompie to działa.
chomiczek
sądze, że masz bład w linii 5 i 6 kodu:
  1. <?php
  2. $img="./$g/photo/";  //Obrazki
  3. $mini="./$g/mini/"; //Miniatury
  4. ?>


i brakuje Ci też wywołania funkcji np:
  1. <?php
  2. galeria('./');
  3. ?>


Działający przykład oparty o Twój kod jest tu: http://www.karamanski.pl/forum/test.php
(wrzucone są tylko miniaturki, więc linki do dużych nie będą działać)
blackjohn
Dzięki. Już działa. Nie wiem, co autor książki, z której korzystałem miał na myśli stawiając na końcu \\

Jeszcze raz, dzieki.

P.S.

Mam jeszcze jedno małe pytanko. Wie ktoś jak poprawić ten kod tak by obrazek otwierał się w nowym oknie najlepiej dopasowanym do wielkości obrazka. Jeśli ktoś wie bardzo proszę o napisanie poprawionego kodu. Z góry dzięki.
chomiczek
Poprawnego kodu nikt Ci nie napisze.. jeśli zdjecie ma się otwierać w nowym oknie uzyj w linku
  1. target="_blank"

jeśli chcesz w popupie o określonych rozmiarach to musisz:
1. pobrać rozmiary dużego zdjecia (użyj getimagesize" title="Zobacz w manualu php" target="_manual)
2. potem napisz lub skorzystaj z jakiejś funkcji otwierającej fotki w popupie.

Skrypt, którego ja używam jest np. tutaj:
http://www.stampi-pol.com/formy.php?formy=firma

W tym skrypcie do wymiaru jest dodane chyba po 4px i wtedy widać taką minimalną białą ramke, takie było założenie, ale sądze, że wystarczy Ci dokładny wymiar zczytany z pliku.
blackjohn
Nie chce mi działać sad.gif co robie żle questionmark.gif?

  1. <?php
  2. function galeria($g){
  3.  
  4. echo('<TR>');
  5. $img="./$g/photo/";
  6. $mini="./$g/mini/";
  7. $cols=5;
  8. $counter=1;
  9.  
  10.  
  11. if(!($fd=opendir($mini))) exit;
  12. while (($file=readdir($fd)) !==false){
  13. if($file!="." && $file !=".."){
  14. $name=substr($file, 0,strlen($file)-4);
  15. $name= $name.".jpg";
  16. $roz = getimagesize("$img/$name");
  17. $width = $roz[0];
  18. $height = $roz[1];
  19.  
  20. print("\r\n<TD align=\"center\" valign=\"middle\">\r\n
  21. <A HREF=\"$img$name\" TARGET=_blank>
  22. <IMG onmouseover=high(this)
  23. style=\"FILTER: alpha(opacity = 70);\" 
  24. onmouseout=low(this) SRC=\"$mini$file\">
  25. </A>
  26. \r\n</TD>\r\n");
  27. if(($counter>=$cols) && (($counter % $cols)==0)){
  28. echo("\r\n</TR>\r\n");
  29. }
  30. $counter++;
  31.  }
  32. }
  33. echo("\r\n</TR>\n\r");
  34. closedir($fd);
  35. }
  36. ?>


Wiem że można to zrobić za pomocą funkcji window.open Męczyłem się z tym długo i nic mi nie wychodzi. Myślę że wy to zrobicie w 5min.

Dzieki z góry i pozdrawia.
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.