Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Problem ze zmiana rozdzielczosci zdjec
Volume
post 9.11.2009, 14:50:20
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (10%)
X----


Mam takie 2 skrypty do wyswietalania zdjec z danego katalogu i automatyczne tworzenie miniatur, testowalem to na swoim serwerze i wszystko dziala ok, a na innym niestety nie wyswietla miniatur, nie wiem co moze byc nie tak...
Bardzo prosze o pomoc

Plik zdjecie.php tworzy miniaturki w zaleznosci od zmiennej $zd:
  1. <?php
  2. $zd=substr($_SERVER['REQUEST_URI'],26);
  3. if($foto==$zd)
  4. {
  5. $foto='galeria/glod/'.$zd;
  6. function resiZze($foto)
  7. {
  8. // Set a maximum height and width
  9. $width = 130;
  10. $height = 130;
  11.  
  12. // Content type
  13. header('Content-type: image/jpeg');
  14.  
  15. // Get new dimensions
  16. list($width_orig, $height_orig) = getimagesize($foto);
  17.  
  18. $ratio_orig = $width_orig/$height_orig;
  19.  
  20. if ($width/$height > $ratio_orig) {
  21. $width = $height*$ratio_orig;
  22. } else {
  23. $height = $width/$ratio_orig;
  24. }
  25.  
  26. // Resample
  27. $image_p = imagecreatetruecolor($width, $height);
  28. $image = imagecreatefromjpeg($foto);
  29. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
  30.  
  31. // Output
  32. imagejpeg($image_p, null, 100);
  33. }
  34. resiZze($foto);
  35. }
  36. else echo 'brak zdjecia';
  37. ?>

Plik wyswietlajacy zdjecia:
  1. <?php
  2. function FunGal($zrodlo_norm)
  3. {
  4. if($fp = @opendir($zrodlo_norm))
  5. {
  6. while(($plik = readdir($fp)) !== false)
  7. {
  8. if($plik != "." && $plik != "..")
  9. {
  10. list($width, $height, $type, $attr) = getimagesize($zrodlo_norm.$plik);
  11. $height2=$height+40;
  12. echo "\n".'<a href="'.$zrodlo_norm.$plik.'" title="Galeria Zooter ('.$width.'x'.$height2.')"><img src="zdjecie.php?foto='.$plik.'" alt="Fotografia: '.$plik.'" /></a>';
  13. }
  14. }
  15. closedir($fp);
  16. }
  17. }
  18. echo FunGal('galeria/glod/');
  19. ?>


Ten post edytował Volume 9.11.2009, 14:53:09
Go to the top of the page
+Quote Post
darko
post 9.11.2009, 15:11:26
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Sprawdź:
1. czy na tym drugim serwerze jest włączone rozszerzenie GD
2. czy wszystkie ścieżki się zgadzają na tym drugim serwerze oraz czy w ogóle istnieją takie katalogi i czy mają odpowiednie uprawnienia do zapisu (777)
3. usuń tłumienie błędów w tej linii
  1. if($fp = @opendir($zrodlo_norm))


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Volume
post 9.11.2009, 15:29:38
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (10%)
X----


Wydaje sie wszystko ok, rozszerzenie GD jest wlaczone, katalogi ok, wyrzucilem ta @, moze cos z przekazywaniem zmiennych w function resiZze($foto)?
Go to the top of the page
+Quote Post
darko
post 9.11.2009, 15:36:43
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Przenieś deklarację funkcji resiZze poza obszar warunku if, bo nigdy nie będzie spełniony (null != $zd), poza tym nic nie piszesz o błędach jakie się pojawiają, więc pewnie tu jest pies pogrzebany

nie wiem jak to zrobiłeś i pierwszy raz widzę coś takiego:

  1. <?php
  2. $zd=substr($_SERVER['REQUEST_URI'],26);
  3. if($foto==$zd)
  4. {
  5. $foto='galeria/glod/'.$zd;
  6. function resiZze($foto)
  7. {
  8. // (...)


przecież to się nigdy nie wykona, bo
  1. $foto='galeria/glod/'.$zd;
deklarujesz po warunku w którym sprawdzasz
  1. if($foto==$zd)
a na domiar złego jeszcze w tym kontekście deklarujesz warunkowo funkcje... (hmmm)

Ten post edytował darko 9.11.2009, 15:42:19


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Volume
post 9.11.2009, 15:49:23
Post #5





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (10%)
X----


Przenioslem tak:
  1. <?php
  2. $zd=substr($_SERVER['REQUEST_URI'],26);
  3.  
  4. function resiZze($foto)
  5. {
  6. $width = 130;
  7. $height = 130;
  8. header('Content-type: image/jpeg');
  9. list($width_orig, $height_orig) = getimagesize($foto);
  10. $ratio_orig = $width_orig/$height_orig;
  11.  
  12. if ($width/$height > $ratio_orig)
  13. {
  14. $width = $height*$ratio_orig;
  15. }
  16. else
  17. {
  18. $height = $width/$ratio_orig;
  19. }
  20.  
  21. $image_p = imagecreatetruecolor($width, $height);
  22. $image = imagecreatefromjpeg($foto);
  23. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
  24. imagejpeg($image_p, null, 100);
  25. }
  26.  
  27. if($foto==$zd)
  28. {
  29. $foto='g/'.$zd;
  30. resiZze($foto);
  31. }
  32.  
  33. else echo 'brak zdjecia';
  34. ?>

Ale ciagle nie wyswietla mi miniatur...
Bledow nie widze bo ten serwer w ogole nie pokazuje bledow, a na swoim serwerze jak sprawdzam to wszystko ok:/
Go to the top of the page
+Quote Post
darko
post 9.11.2009, 16:10:56
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Skoro nie wyświetla zdjęć, to problem raczej tkwi tutaj:
  1. <?php
  2. function FunGal($zrodlo_norm)
  3. {
  4. if($fp = @opendir($zrodlo_norm))
  5. {
  6. while(($plik = readdir($fp)) !== false)
  7. {
  8. if($plik != "." && $plik != "..")
  9. {
  10. list($width, $height, $type, $attr) = getimagesize($zrodlo_norm.$plik);
  11. $height2=$height+40;
  12. echo "\n".'<a href="'.$zrodlo_norm.$plik.'" title="Galeria Zooter ('.$width.'x'.$height2.')"><img src="zdjecie.php?foto='.$plik.'" alt="Fotografia: '.$plik.'" /></a>';
  13. }
  14. }
  15. closedir($fp);
  16. }
  17. }
  18. echo FunGal('galeria/glod/');
  19. ?>


to jeszcze raz:

1. usuń tłumienie w opendir
2. dodaj po
  1. if($fp = @opendir($zrodlo_norm)) {
  2. // (...)
  3. }
  4. else {
  5. die "cannot open directory";
  6. }


dodaj jakąś obsługę błędów, "wyechuj" sobie wartości, które podstawiasz jako argumenty do funkcji, sprawdzaj czy warunki są spełnione, jeśli nie są to dodaj else i wypluj sobie sam błąd, nie mam czasu na dokładne analizowanie kodu, to można przecież zrobić samemu


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Volume
post 9.11.2009, 17:27:59
Post #7





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (10%)
X----


Ok udalo mi sie, pomoglo $_GET['foto'] zamiast $foto
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 Wersja Lo-Fi Aktualny czas: 13.07.2025 - 23:11