Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]dot dot slash problem, jak bezproblemowo odwolywac sie do wielu plikow w wielu folderach?
xix
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 14.11.2008

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


Oto proste drzewo plikow
../a.php
../b.php
../f/c.php
Jak widac pliki a i b sa na tym samym poziomie, a plik c jest w folderze f.
Z tego co widze, by sie odwolac do pliku a z pliku b, to w pliku b nalezy zamiescic funkcje include('./a.php').
Aby odwolac sie do pliku a z pliku c, to w pliku c nalezy zamiescic funkcje include('../a.php'). Plik c odwoluje sie rowniez do innych plikow i tu pojawiaja sie bledy w ich znalezieniu (sciezki probowalem wpisywac w roznych konfiguracjach i nic nie wychodzi).

Pytanie:
Czy istnieje jakis sposob na funkcje podobna do ponizszej, ktora ulatwilaby poruszanie sie miedzy plikami:

wazny_folder(jest tam, gdzie znajduje sie plik a);
zastosowanie:
inlude('wazny_folder('./f/c.php')');

Ten post edytował xix 17.01.2009, 00:52:19
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
xix
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 14.11.2008

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


Nie rozumiem czemu zmieniac globalnie plik php.ini, jezeli zmiany potrzebuje tylko lokalnej dla jednego pliku. Czy nie da sie tego prosciej zrobic? Szukalem z reszta po necie i po ksiazkach i wzoru niestety nie znalazlem jak takie cos przeprowadzic.
Musze zastosowac sciezki bezwzgledne, bo plikow mam duzo i sa przenoszone z miejsca na miejsce.

Aby jeszcze rozjasnic jaki jest problem, do zamieszczonego wczesniej drzewa katalogow dodam zawartosc plikow.

/a.php
Zawartosc pliku a.php z folderu glownego:
Kod
<?php
     include('./2/c.php');
     ?>
     widze plik a<br />


/1/b.php
Zawartosc pliku b.php z folderu 1 umieszczonego w folderze glownym:
Kod
<?php
     include('../2/c.php');
     ?>
     widze plik b<br />


/2/c.php
Zawartosc pliku c.php z folderu 2 umieszczonego w folderze glownym:
Kod
<?php
     include('./d.php');
     ?>
     widze plik c<br />


/d.php
Zawartosc pliku d.php z folderu glownego:
Kod
<?php
     echo "widze plik d<br />";
     ?>


po wyswietleniu pliku a.php w przegladarce otrzymam wynik:
Cytat
widze plik d
widze plik c
widze plik a


po wyswietleniu pliku b.php w przegladarcze otrzymam wynik:
Cytat
Warning: main(./d.php): failed to open stream: No such file or directory in...
Warning: main(): Failed opening...
widze plik c
widze plik b


Jezeli zmienie w pliku "c.php" sciezke "include('./d.php');" na "include('../d.php');"
to blad nie pojawia sie juz przy wyswietleniu pliku "b.php", ale pojawia sie przy wyswietleniu pliku "a.php".
Sprawa by byla rozwiazana, jesli cos by wysylalo do folderu glownego na przyklad w taki sposob:
"include('%/d.php');"
% oznacza - niezaleznie gdzie jestes szukaj plik zaczynajac od folderu glownego / folderu zakladki / folderu kotwicy...

Ten post edytował xix 17.01.2009, 14:30:50
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 10:43