może dziać się tak dlatego, że... hmmm, nie wiem jak to w słowa ubrać, opisze więc:
prawdopodobnie masz sytuację taką, że plik który chcesz includować fizycznie leży dwa katalogi wyżej od pliku includującego. Ale, być może nie leży wcale dwa katalogi wyżej od pliku który faktycznie includuje ten plik. Masło maślnane, co? :P
struktura:
Kod
- /home
- /home/strona/index.php
- /home/strona/dodatki/biblioteki/plik.php
- /home/config.php
sytuacja 1:
- w pliku
plik.php masz instrukcję include('../../config.php');
- wklepujesz w przegladarce:
http://localhost/strona/dodatki/biblioteki/plik.php -> działa OK
sytuacja 2:
- w pliku
plik.php masz instrukcję include('../../config.php');
- w pliku index.php masz instrukcję include('dodatki/biblioteki/plik.php');
- w pliku
plik.php masz instrukcję include('../../config.php');
- wklepujesz w przegladarce:
http://localhost/strona/index.php -> nie działa OK
dlaczego?
ścieżka ../../ nie jest teraz sprawdzana relatywnie do fizycznego pliku
plik.php ale względem pliku w którym ten plik zaincludowałeś (
index.php)
rozwiązanie:
ja uparcie będę polecał ścieżki absolutne - nie ma problemów z takimi właśnie historiami, nie ma problemów z np. przeniesieniem aplikacji gdzie indziej.
<?php
define('APP_PATH', 'home/strona/'); include(APP_PATH.'biblioteki/dodatki/plik.php'); // zawsze zadziała
?>
aha, a może oprócz tego że plik nie został zaincludowany pokazał się jakiś błąd? Jeżeli nie działa tak jak napisałem - podziel się tym błędem. Kod który pokazałeś sam w sobie jest poprawny.
pozdr.