Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Includowanie plików
krzesik
post
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


Witam, mam strukturę katalogów:
+ katalog_glowny
- katalog_1
- katalog_2
- katalog_3

w katalogu_glownym mam skrypt w którym chciałbym includować plik z katalogu_1

zrobiłem tak
<?
include '/katalog_1/plik.php';
?>

niestety bez zamierzonego efektu, co zrobiłem źle?
Go to the top of the page
+Quote Post
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Nie daje się znaku / na początku ścieżki w include ponieważ informujesz parser że chcesz wczytać plik zaczynając od roota systemu, a nie miejsca w którym znajdujesz się w danej chwili.

  1. <?php
  2. include 'katalog_1/plik.php';
  3. ?>


Możesz również wykorzystać stałą __DIR__, który niesie informacje wszystkich katalogach przed twoim katalogiem o nazwie: katalog_glowny, ale włącznie z nim.

  1. <?php
  2. include __DIR__.'/katalog_1/plik.php';
  3. ?>


Ten post edytował Tomplus 9.06.2016, 11:14:52
Go to the top of the page
+Quote Post
Rysh
post
Post #3





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


  1. include('./katalog_1/plik.php');

Kropka jest bardzo istotna w tym przypadku. Bez kropki oznacza to że includujesz plik z głównego katalogu systemu plików, z kropką z katalogu w którym wykonywany jest plik.

Edit: wyprzedziłeś mnie smile.gif

Ten post edytował Rysh 8.06.2016, 22:00:41


--------------------
Go to the top of the page
+Quote Post
krzesik
post
Post #4





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


niestety żaden z podanych wyżej sposobów nie działa, ale natknąłem się jeszcze na jedną sprawę. W moim hostingu mam wyłączone:
- allow_url_fopen
- allow_url_include


czy to czasem nie jest winowajca?
Go to the top of the page
+Quote Post
Rysh
post
Post #5





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Cytat(krzesik @ 8.06.2016, 23:05:44 ) *
niestety żaden z podanych wyżej sposobów nie działa, ale natknąłem się jeszcze na jedną sprawę. W moim hostingu mam wyłączone:
- allow_url_fopen
- allow_url_include


czy to czasem nie jest winowajca?

Nie. Sprawdź sobie czy plik istnieje. Użyj funkcji file_exists oraz var_dump.


--------------------
Go to the top of the page
+Quote Post
com
post
Post #6





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Cytat
- allow_url_fopen
- allow_url_include

to ma znaczenia jak pytasz z zewnątrz wink.gif
Go to the top of the page
+Quote Post
Tomplus
post
Post #7





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Bo to raz było tak, że człowiek myśli że ścieżka jest prawidłowa, a okazuje się że jest jakaś literówka, brak slasha czy kropki itd.

Sprawdź najpierw czy jesteś w dobrym katalogu:

np. prostą funkcją z manuala:
  1. $d = dir("./");
  2. echo "Handle: " . $d->handle . "\n";
  3. echo "Path: " . $d->path . "\n";
  4. while (false !== ($entry = $d->read())) {
  5. echo $entry."\n";
  6. }
  7. $d->close();


Jeżeli masz pliki i foldery z katalogu katalog_glowny to prawidłowo, możesz potem sprawdzić i zmienić ścieżkę na ./katalog_1

Jeżeli nie, to może okazuje się że jesteś za wysoko w strukturze katalogów i należy się cofnąć czyli wpisać:

../katalog_1/, dwie kropki to przejście do katalogu niżej i można je stosować dowoli np. ../../../../ to zejdziemy o 4 katalogi niżej w strukturze [jeżeli jest taka możliwość].
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Albo za pomocą http://php.net/manual/en/function.chdir.php zmienić katalog.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post
Post #9





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


chdir to zuo smile.gif

Kod
include __DIR__.'/katalog_1/plik.php';
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Dlaczego zło? Porządkuje sprawę punktu wejścia i odniesień w aplikacji.
Przykładowo jest używany domyślnie w https://github.com/zendframework/ZendSkelet...ublic/index.php
Oczywiście jak zawsze wszystko należy używać z głową. Inaczej można sobie zrobić krzywdę nawet zwykłym include jak widać po pierwszym temacie.

Ten post edytował viking 9.06.2016, 11:17:25


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 15:16