Skocz do zawartości
Dragomok

Rozwiązany: [PHP] Problem ze skopiowaną stroną (failed to open stream)

Polecane posty

Mam dość specyficzny problem.

Próbuję stworzyć inne wersje językowe do działającej strony PHP zrobionej przez innego informatyka. Wersja polska zostaje tam gdzie jest, językowe są w podfolderach. Skopiowałem pliki, skopiowałem bazy danych, przypisałem im użytkownika, wpisałem w odpowiednie miejsca, pozmieniałem w plikach ścieżki absolutne tak, by się zgadzały.

Strony zorganizowane są tak: są kategorie, które zawierają tekst i podkategorie, które z kolei zawierają tekst i zdjęcia.

I prawie wszystko działa. Jedyny problem mam wtedy, gdy próbuję załadować nowe lub zamienić stare zdjęcie podkategorii. Funkcja za to odpowiedzialna powinna tworzyć miniaturkę na podstawie .jpg'a, a tworzy tylko czarny obrazek. Ponadto wyskakują mi takie błędy:

Warning: imagecreatefromjpeg(../kategorie/m/1475935011_70.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /home/users/bama/public_html/imi-beton/de/admin/funkcje/funkcje_zdjec.php on line 37

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/users/bama/public_html/imi-beton/de/admin/funkcje/funkcje_zdjec.php on line 38

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/users/bama/public_html/imi-beton/de/admin/funkcje/funkcje_zdjec.php on line 40

Poniżej linie 36-41 pliku funkcje_zdjec.php, do którego odwołują się błędy:

36  $rysunek_duzy = imagecreatetruecolor($szer,$wysoko);
37  $rysunekprzeksztalcany = ImageCreateFromJpeg ("$obraz_d");
38  imagecopyresampled($rysunek_duzy,$rysunekprzeksztalcany,0,0,0,0,$szer,$wysoko,$szerokosc,$wysokosc);
39  imagejpeg($rysunek_duzy,$obraz_d);
40  imagedestroy ($rysunekprzeksztalcany);
41  return $foto1_do_db;

Upewniałem się kilka razy,

  • czy w pliku funkcje_zdjec.php nie ma źle wpisanych ścieżek,
  • czy na serwerze prawa do wszystkich plików i folderów są identyczne jak na działającej stronie,
  • czy są jakieś różnice między plikami ze strony działającej i tej z błędem.

Niczego nie znalazłem. Próby znalezienia odpowiedzi w Google były... Cóż, niezbyt udane. :rozpacz:

Czy komuś coś świta, co to może być? Oczywiście udzielę więcej informacji w razie potrzeby.

PS Dane techniczne serwera:

System operacyjny: Linux

Wersja MySQL: 5.0.90-community-log

Wersja PHP: 5.2.13

Wersja Apache: 2.0.63

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Drugi i trzeci błąd jest najprawdopodobniej spowodowany pierwszym, więc na razie się nim nie przejmujmy. Napisz jaka jest poprawna ścieżka do obrazka. Spróbuj też na próbę ustawić tą ścieżkę na sztywno i zobacz co wtedy będzie się działo.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Obrazki o (losowo generowanych nazwach) znajdują się w '/home/users/bama/public_html/imi-beton/de/kategorie/m/'.

Co do ustawiania ścieżek...

Problem w tym, że w kodzie jedyne miejsca, w których w ogóle pojawia się nazwa folderu "kategorie", znajdują się w innym pliku, w takich kawałkach kodu:

$zdjecie = $_FILES["obrazek_mini"]["tmp_name"];
$katalog_realny=$_SERVER["DOCUMENT_ROOT"]."/kategorie/m/";
$katalog_virtual='kategorie/m';
$foto_m=zmniejsz_zdjecie($zdjecie,160,120,$katalog_realny,$katalog_virtual,$_POST["id_kategorii"]);

Nie za bardzo wiem, co z tym zrobić.

Edytowano przez Dragomok

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No dobra, to mam już pewność, że ścieżka jest ustalana źle. Prześledź jak jest tworzona zmienna $obraz_d, bo w niej jest jakiś błąd. Skrypt generuje ścieżkę względną, więc pewnie ta zmienna jest generowana przez zupełnie inny plik, całkiem możliwe, że znajdujący się w innym katalogu i stąd się bierze błąd.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Okazało się, że ścieżka jest w pliku cytowanym w moim drugim poście, a DOCUMENT_ROOT to skrót ścieżki do folderu wersji polskiej.

Dodałem za nim DE tak, że wygląda to tak:

$katalog_realny=$_SERVER["DOCUMENT_ROOT"]."/de/kategorie/m/";

...i już wszystko działa.

Piękne dzięki, sprawa rozwiązana.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Problem rozwiązany, więc temat zamykam.

W razie potrzeby otwarcia tematu, proszę o kontakt przez PW.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Gość
Temat jest zablokowany i nie można w nim pisać.

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×