ugrás a tartalomhoz

abszolút elérési út?

Anonymous · 2005. Már. 29. (K), 02.48
A szerver "../mysubdir/" könyvtárából szeretnék megjeleníteni egy képet az oldalamon, de az src="../mysubdir/filename.ext" (illetve linknél a href="../mysubdir/filename.ext") mindig megváltozik a kimeneten "../mysubdir/filename.ext" -re, és ezáltal File Not Found hibát generál.

Link esetében ezt ki tudom kerülni egy változóval és get-es átadással (href="actual.php?newvar=../mysubdir/filename.ext"), de képnél kéne az
abszolút elérési út a "../mysubdir/" helyett!

Hogyan tudom megkapni?

Előre is köszi!
 
1

relatív kell

VBala · 2005. Már. 29. (K), 09.01
Nem jó, ha abszolút utat adsz meg, mert a kép/link elérési útját a böngésző értelmezi, és ha pl: "/var/www/mydomain.hu/mysubdir/filename.ext"-et adsz meg, akkor azt így kérné le: http://www.mydomain.hu/var/www/mydomain.hu/mysubdir/filename.ext
Szóval máshol keresd a hibát, esetleg ha tudod, nézd meg az oldalad access.log-ját
2

Elérési útvonal

Anonymous · 2005. Már. 30. (Sze), 21.39
Szerintem ez úgy fog működni, hogy ahol meghívod az adott oldalt, onnan fogja keresni relatíve az útvonalat, és a képet/linket. Ha meg abszolút útvonalat adsz meg, akkor /dir/dir/file.ext. Ez az aktuális gyökérkönyvtártól kezdve éri el a file-t. Én legalábbis így csinálom. Ha az file-megnyitási helytől lejjebb van a képfile, akkor dir/file.ext lesz a relatív útvonala. Itt ugye nem kell a dir elé /-jel.
3

Az elérési út jó úgy,

Anonymous · 2005. Már. 31. (Cs), 00.58
Az elérési út jó úgy, hogy "../upload/filename.ext", hiszen ha linkről van szó (<a href=...), akkor működik, csak kép esetén (<img src=...) nem.
Linkelt fájlnál megy, képnél viszont a "www.domain.tld/upload/filename.ext"-t próbálja elérni.
4

Illetve az előbb már

Anonymous · 2005. Már. 31. (Cs), 01.17
Illetve az előbb már belezavarodtam...

Természetesen nem a kép és az egyéb fájl között van különbség, csak ha közvetlenül ezt írom "<a href='../upload/filename.ext'>", akkor nem jó,
de ha egy GET-es átvitel után
"myvar=www.domain.tld?myvar='../upload/filename.ext'"
hívok egy "include($myvar);"-t, akkor megy.
5

hol van az upload?

VBala · 2005. Már. 31. (Cs), 09.46
Az upload könyvtárad véletlenül nem a documentroot-on kívül van?
6

de.úgy néz ki, hogy van

Anonymous · 2005. Már. 31. (Cs), 20.35
de.
úgy néz ki, hogy van a szerveren egy könyvtáram:

.. - gyökér
<html> - itt vannak a php fájljaim
<upload> - itt meg a feltöltött cucc

nekem is az volt a tippem, hogy ez lehet a gond, de biztosan van rá megoldás, hiszen, ha includolni tudok onnan, akkor látom, ergo tudok rá hivatkozni!
csak nem tudom, hogy hogyan.
már napok óta...
:-(
7

Lehet, hogy így?

Anonymous · 2005. Ápr. 2. (Szo), 04.29
.. - gyökér
<html> - valami.php -> <img src="/upload/konyvtar.gif">
<html/elso_szintu> - valami.php -> <img src="../upload/konyvtar.gif">
<html/elso_szintu/alkonyvtar> - valami.php -> <img src="../../upload/konyvtar.gif">
<upload> - itt vannak a képek (konyvtar.gif)
8

symlinkkel jó

Anonymous · 2005. Ápr. 2. (Szo), 18.16
ismerös a problema
a html kód abban tud csak keresgélni ami kivülről amúgyis látszik és ez jól is van így.
a php bezzeg futkároz a gépen, néha pl. hiba esetén kiir olyan dolgokat is amiket normálisan a web felől nem lehet látni...
LÉNYEG:
csinálj egy szimbolikus linket a html könyvtáradba ami az upload-ra mutat, aztán szedd ki a ..okat a hivatkozásból.
ui: ha windowst használsz nem tudsz szimlinket csinálni, nagyon sajnállak; szvsz válts linuxra :)
9

symlinkkel jó

Anonymous · 2005. Ápr. 2. (Szo), 18.22
mégegyszer elolvastam amiket írtál.
rájöttem h nem a php és a html különbsége csinálja a bajt.
nekem az a furcsa, hogy <a href=> műxik, <img src=> meg nem.
de ez a szimlinkes módszer elvileg kell hogy működjön...
10

de ha már phpt használsz,

yaanno · 2005. Ápr. 4. (H), 09.05
de ha már phpt használsz, definiálhatsz változókat (vagy ebben az esetben konstans változókat): pl. $imageroot, $linkroot - ezekbe beteszed az elérési útvonalakat.
11

URL != path

zila · 2005. Ápr. 4. (H), 14.29
Ott tévedsz el, hogy az include az filerendszerből tölt, és eléri a webrooton kívüli könyvtárakat is, a html-ben a hivatkozások (URL-ek) azok pedig csak webrooton belül működnek.

Csinálj egy kis php wrappert, aminek átadod a file nevét, az pedig a ../upload-ból beolvassa és a tartalmat a kimenetre küldi (megfelelő fejlécekkel), és máris működik ez <a href="/akarmi.php?file=filename.ext"> vagy akár ez: <a href="/akarmi.php?file=filename.ext">

Sőt olyat is lehet, hogy <img src="/akarmi.php?file=filename.ext">

üdv,
Zila