Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: katalogi i img src
Forum PHP.pl > Forum > PHP
no_mercy
Mam sobie taki kod:
  1. <?php
  2. // wypisanie plików znajdujących się w katalogu za pomocą <select>
  3.  
  4. $dir = @opendir("../$sciezka_mod1");
  5. print '<select name="pliki_galeria" class="select_pozycja">';
  6. if ($dir) {
  7. while ($file = readdir($dir)) {
  8.  
  9. print "<option value='" . $file . "' name='" . $file . "'>" . $file . "</option>";
  10. }
  11. print "</select>";
  12. closedir($dir);
  13. }
  14. ?>
  15. // pokazywanie pliku podanego w select z wczesniejszym skalowaniem
  16.  
  17. <input type="submit" id="galeria_pokarz" value="pokarz" name="pokarz" class="button_basic">
  18. <?php
  19. if (isset($_POST['pokarz'])) {
  20. $nazwa = $_POST['pliki_galeria'];
  21. $_SESSION['path'] ="../$sciezka_mod1/$nazwa";
  22.  
  23. if (!fopen($_SESSION['path'])) {
  24. echo "Nie mogę otworzyc pliku: $path";
  25. }
  26. $dane = getimagesize($_SESSION['path']);
  27. $szer1 = $dane[0];
  28. $wys1 = $dane[1];
  29. $zmiana2 = ($dane[0] * 1 / 100);
  30. $zmiana3 = ($dane[1] * 1 / 100);
  31.  
  32. while (($wys1 > 200)||($szer1 > 200)) {
  33. $wys1 = ($wys1 - $zmiana3);
  34. $szer1 = ($szer1 - $zmiana2);
  35. }
  36. $_SESSION['wysokosc_obrazka'] = $wys1;
  37. $_SESSION['szerokosc_obrazka'] = $szer1;
  38. $_SESSION['powrot_galeria'] = 1;
  39. header('Location:logged.php');
  40. }
  41. ?>
  42. <?php
  43. echo '<img SRC="' . $_SESSION['path'] . '" width="' . $_SESSION['szerokosc_obrazka'] . '" height="' . $_SESSION['wysokosc_obrazka'] . '" border="0" />';
  44. ?>

a teraz sposób działania:

mam katalogi

- katalog_a
----> katalog_b
--------> mod1.php
----> katalog_c
--------> katalog_d
-----------> plik.jpg

oraz to co wywołuję z bazy danych: $sciezka_mod1 (jest to po prostu nazwa katalogów). dla przykładu "katalog_c/katalog_d"
zatem żeby dostać się z mod1.php do plik.jpg moja scierzka to właśnie ../$sciezka_mod1/$nazwa czyli to co w $_SESSION['path'];

Dlatego przechowuję w bazie danych bo później mogę mieć kilka takich katalogów i podkatalogów jak jest to od katalog c

Rezultat:

plik jest poprawnie wczytywany w select, poprawnie skalowany, w img src pokazuje się np. <img SRC="../katalog_c/katalog_d/11.png" width="136.4" height="198" border="0" /> i pojawia sie ramka takiej wysokości i szerokości jaka powinna być ale zamiast obrazka pojawia się znak zapytania (w safari) albo znaczek przerwanej (w firefoxie)

Jak to rozwiązać bez używania http://..........
cycofiasz
kliknij PPM w firefoxie na tą ramkę obrazka i skopiuj adres obrazka. przeanalizuj zawartość schowka
no_mercy
wychodzi takie coś : http://domena/katalog_c/katalog_d/nazwa.jpg co właśnie jest dobra ścieżką a obrazka nie wyświetla?
cycofiasz
A jaki jest url (http) do działającego obrazka?
no_mercy
ok a jednak nie jest dobrze bo

dla katalog b wygląda to tak:

http://domena1/katalog_b/podkatalogb/obrazek.jpg

natomiast dla katalog c

http://domena1/katalog_c/katalog_d/obrazek.jpg

a w obu tych adresach domeny powinny być rózne

dobra wydaje mi się że jednak prostsze będzie wyświetlanie tego obrazka przez http:// ....... a skalowanie tak jak jest
Quadina
Zacznijmy od tego, co mnie od razu w oczy kole: POKAŻ !

Cytat

Nie możliwe, żeby wyszło ci coś takiego z powodu tej linijki:
Kod
                        $_SESSION['path'] ="../$sciezka_mod1/$nazwa";

W kodzie masz dwie kropki, a piszesz, że wchodzi ci jednak bez kropek w adres obrazka, jakieś przekłamanie tutaj następuje. Zatem albo gdzieś coś się z tym adresem jeszcze dzieje, albo błędnie przeanalizowałeś kod, który ci się wypruwa. Skopiuj najlepiej nam tutaj DOKŁADNIE co ci generuje skrypt z tym obrazkiem, usuwają np. tylko domenę.
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.