Problemy z dołączaniem elementów strony przez include

Witam, próbuję odpalić już długi czas stronę, która na serwerze lokalnym chodzi normalnie, ale nie mogę jej odpalić na serwerze zdalnym nazwa.pl. Problem o ile się nie mylę leży w złych ścieżkach w include i require. Na przykład plik index_cookies.php, który znajduje się w katalogu “theme/default/”, dołącza plik z folderu głównego w taki sposób:

include "gora_new.php";

O ile się nie mylę powinno to wyglądać tak :

include "../../gora_new.php";

Po dodaniu tych dwóch powrotów do folderów nadrzędnych również wszystko co znajduje się w pliku gora_new.php, również idzie dwa razy do góry.

Takich plików na tej witrynie jest masa, a naprawdę bardzo łatwo coś zgubić przy ręcznym wpisywaniu. Zastanawiam się tylko jak to jest, że ta strona działa na serwerze lokalnym i nie przeszkadzają jej błędne ścieżki, a na serwerze zdalnym niestety to nie przejdzie.

Strona bez żadnej edycji wyświetla tylko logo, które jest zamieszone w pliku gora_new.

Dla sprawdzenia dałem powroty do folderów nadrzędnych i dzięki temu zaczęła się wyświetlać lewa belka z zawartością, ale zniknął baner. (tak więc niby wczytuje ten plik, ale w środku już jest coś namieszane)

Poszukuję jakiegoś rozwiązania tego problemu. Edycja setek plików, w projekcie, w którym nie miałem swojego wkładu jest dużym problemem.

KaRnaSX , proszę zapoznaj się z tą stroną oraz tym tematem, a następnie, używając przycisku image.php?album_id=20&image_id=4038

Więcej informacji, jeśli plik index_cookies.php jest ładowany przez plik z głównego katalogu wtedy ładowane przez niego pliki będą miały podane ścieżki względem katalogu głównego :slight_smile:

Dlatego definiuje się katalog główny w pliku index.php jako

DIRCOŚ = realpath(dirname( __FILE__ )) . DIRECTORY_SEPARATOR;

i wtedy używasz ścieżek na zasadzie:

include DIRCOŚ.'config.php';

include DIRCOŚ.'theme/default/index_cookies.php';

Ok dzięki, widzę, że czekam mnie dużo zmian. Na stronie w wielu includach podany jest na sztywno zewnętrzny odnośnik do tej samej strony, która stoi na dedyku.

Dodane wtorek, 15 października 2013, 19:26

Może opisze problem dokładniej.

Mam plik index.php:

Ma on w sobie trzy “include”:

1.include (“theme/Default/index_cookies.php”);

2.include (‘config_nowe.php’);

3.include (‘module/news_nowe.inc.php’);

Skupię się tylko na tym pierwszym.

Plik index_cookies posiada pięć “include” i każdy odnośnik “src” lub “href”, odnosi się bezpośrednio do plików z głównego katalogu(my jesteśmy w katalogu theme/Default/), np. src=“whcookies.js” oraz src=“images/logo.png”.

Najważniejszy plik tutaj dołączany to:

include (“gora_new.php”);

Znajduje się on w katalogu głównym. (my wciąż się znajdujemy w theme/Default).

Plik gora_new.php posiada trzy “include” plików, które znajdują się w katalogu głównym oraz odnośniki bezpośrednie np. src=“images/reklama.jpg”.

Jak to tutaj ustawić?

Rozpiska katalogów:

-index.php

-config_nowe.php

–default

—Theme

----index_cookies.php

-gora_new.php

-config_turystyka.php

-config_billboard.php

Jeśli to plik index.php z głównego katalogu ładuje plik “theme/Default/index_cookies.php” to ścieżki do ładowania w tym pliku (index_cookies.php) podajesz względem pliku index.php z głównego katalogu.

BTW. W pliku index.php zmień pierwsze wystąpienie

<?php

na

<?php ini_set('display_errors', '1');error_reporting(E_ALL);

Czyli w index_cookies.php normalnie podaję np. include (‘gora_nowa.php’) bez żadnych ukośników i dodatków?