Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Plik z wcześniejszego katalogu
klapaucius
post
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Cześc! Chciałem się zapytać jednej rzeczy, mianowicie czy można zrobić coś takiego jak np zaincludować jakiś plik, który jest w "wyższym"(wcześniejszym) katalogu. Czyli jeśli np mamy plik www/strona/strona.php i chcemy zaincludować inny plik, który znajduje się w katalogu www to jak sie do niego odwołać? Wiem ze mozna by zrobic cos takiego jak np. include('www.adresstrony/www/pliczek_do_zaincludowania.php') ale wtedy nie bedzie to dość optymalne rozwiązanie, gdyż jeśli np adres strony się zmieni to nie będzie to już działało.
Proszę o pomoc. Pozdrawiam!

Ten post edytował klapaucius 15.01.2010, 20:26:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
InosU31
post
Post #2





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


spróbuj :

  1. /www/strona.php
  2.  
  3. lub
  4.  
  5.  
  6. ./www/strona.php



pozdrawiam
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A zwykłego cofania poprzez ../ nie znamy? (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
InosU31
post
Post #4





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Cytat(thek @ 15.01.2010, 20:34:27 ) *
A zwykłego cofania poprzez ../ nie znamy? (IMG:style_emoticons/default/winksmiley.jpg)


u mnie to nie zadzialalo jak chialem zrobic wyjscie z katalogu :

/page/folder1/index.php

do

/page/folder2/index2.php

pozdrawiam
Go to the top of the page
+Quote Post
klapaucius
post
Post #5





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Cytat(InosU31 @ 15.01.2010, 20:37:28 ) *
u mnie to nie zadzialalo jak chialem zrobic wyjscie z katalogu :

/page/folder1/index.php

do

/page/folder2/index2.php

pozdrawiam

No własnie u mie też to nie działa. Moglby to ktos objasnic?
Go to the top of the page
+Quote Post
InosU31
post
Post #6





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


probowales zrobic tak jak ja ci napisalem czyli /www/strona.php lub z kropka: ./www/strona.php ?
Go to the top of the page
+Quote Post
neverever
post
Post #7





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

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


jeśli chcesz do katalogu poziom wyżej, to: ../plik
jeżeli do katalogu 2 poziomy wyżej, to: ../../plik
jeżeli do katalogu równorzędnego, to ../katalog/plik
Go to the top of the page
+Quote Post
klapaucius
post
Post #8





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


dzieki piekne! teraz działa! Bardzo dziękuje!!
@edit
oj jednak nie jest tak pięknie... ;/
chce w pliku 'layout.php' zaincludowac plik 'pozdrowionka.php', znajdująca się o 2 katalogi wyżej. Robię to w ten sposób: include('../../pozdrowionka.php'); Jednak wyskakują mi takie błędy:

Warning: include(../../pozdrowionka.php) [function.include]: failed to open stream: No such file or directory in /var/www/testots/layouts/tibiacom/layout.php on line 136

Warning: include() [function.include]: Failed opening '../../pozdrowionka.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/testots/layouts/tibiacom/layout.php on line 136


Dlaczego?

Ten post edytował klapaucius 15.01.2010, 21:25:12
Go to the top of the page
+Quote Post
neverever
post
Post #9





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

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


jeżeli jesteś pewien, że ścieżki są prawidłowe i plik includowany znajduje się faktycznie 2 katalogi wyżej
...to zgaduję - zagnieżdżenia, może system szablonów.

Z tymi zagnieżdżeniami to podam na przykładzie:

jest sobie taka struktura katalogowa począwszy od roota:

index.php
a/index1.php
a/b/index2.php

teraz robimy taki myk, że w pliku index1.php includujemy plik index2.php, który z kolei includuje plik index.php z katalogu głównego.

plik index.php
  1. echo 'udało się!';


plik index1.php
  1. include 'b/index2.php';


plik index2.php
  1. include '../../index.php';


Niby ścieżki się zgadzają ...a jednak nie działa?

Ano dzieje się tak, bo kod jest dołączany przed wykonaniem.
Czyli tutaj choć ścieżki wyglądają poprawnie, taka operacja się nie powiedzie ...bo błąd wywali include z pliku index2.php - to za sprawą punktu odniesienia. Plik ten jest bowiem wcześniej includowany do pliku katalog wyżej ...i ścieżka przestaje się z tego powodu zgadzać.

ale jak już poprawisz plik index2.php w taki sposób
  1. include '../index.php';
to zacznie działac.

Zgaduję, że tej sytuacji ma miejsce trochę podobna sytuacja. (IMG:style_emoticons/default/czarodziej.gif)



Go to the top of the page
+Quote Post
klapaucius
post
Post #10





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Cytat(neverever @ 15.01.2010, 22:32:55 ) *
jeżeli jesteś pewien, że ścieżki są prawidłowe i plik includowany znajduje się faktycznie 2 katalogi wyżej
...to zgaduję - zagnieżdżenia, może system szablonów.

Z tymi zagnieżdżeniami to podam na przykładzie:

jest sobie taka struktura katalogowa począwszy od roota:

index.php
a/index1.php
a/b/index2.php

teraz robimy taki myk, że w pliku index1.php includujemy plik index2.php, który z kolei includuje plik index.php z katalogu głównego.

plik index.php
  1. echo 'udało się!';


plik index1.php
  1. include 'b/index2.php';


plik index2.php
  1. include '../../index.php';


Niby ścieżki się zgadzają ...a jednak nie działa?

Ano dzieje się tak, bo kod jest dołączany przed wykonaniem.
Czyli tutaj choć ścieżki wyglądają poprawnie, taka operacja się nie powiedzie ...bo błąd wywali include z pliku index2.php - to za sprawą punktu odniesienia. Plik ten jest bowiem wcześniej includowany do pliku katalog wyżej ...i ścieżka przestaje się z tego powodu zgadzać.

ale jak już poprawisz plik index2.php w taki sposób
  1. include '../index.php';
to zacznie działac.

Zgaduję, że tej sytuacji ma miejsce trochę podobna sytuacja. (IMG:style_emoticons/default/czarodziej.gif)

Hmm... No faktycznie ten mój plik layout.php, jest odpowiedzialny za szablon strony i jest on już includowany przez inny plik wcześniej i może dojść faktycznie do jakiejś kolizji. Ale siedzie nad tym sporo czasu i za cholere nie moge nic wymyślić zeby to jakos naprawic w moim przypadku... Tracę wogole juz nadzieje ze sie tak da zrobic... Czy mozna w mojej sytuacji wykombninowac cos? Bardzo prosze o pomoc!
Go to the top of the page
+Quote Post

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: 24.09.2025 - 22:56