Z góry mówię, że to będzie długi post, więc proszę o cieprpliwość.
Mam stronę z ogromną liczbą grafiki, więc żeby zmniejszyć jej ciężar i zrobić ją bardziej przejrzystą w nawigacji, postanowiłem zbudować ją poprzez funkcję require (include też próbowałem) przy pomocy tablicy globalnej $_GET.
Założenie było takie jak na rysunku:

a mianowicie, żeby elementy BANER I STOPKA były stałe, a wczytywane były do diva BOX elementy strony.
I do tego momentu nie było problemów, to umiem zrobić i działa.
Strona nad która pracuję jest jednak rozbudowana, więc postanowiłem zrobić coś więcej, a mianowicie zagnieździć (szukam określenia) wczytanie metodą $_GET do wczytanego już tą samą metodą diva BOX jak na rysunku:

I tak dzięku podwójnemu includowaniu powinniśmy mieć całą stronę...
Wiem, że można użyć np. menu rozwijanego, żeby nie komplikować, ale zależy mi na tym rozwiązaniu, żeby strona była przejrzystsza w nawigacji. Każdy dział Home, Oferta i blablabla mają swoje własne podkategorie...
To niestety nie działa...
Zanim obejrzysz efektu tutaj: TUTAJ., zwróć uwagę, że w divie INFO jest tekst, a po naciśnięciu link home1 w menu, pojawia się napis: nie ma takiej strony...
Podam teraz kody stron z której zbudowana jest witryna testowa:
index.php:
<?php // zmienna potrzebna do prawidlowego wczytania includowanych plikow $add_site = true; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> <title>Problem...</title> <link rel="stylesheet" type="text/css" href="index.css" /> </head> <body> <div id="body"> <!--====================BANER =====================================--> <div id="baner"> <?php require "strony/baner.php"; ?> </div> <!--==============================gohome====================--> <div id="box"> <?php $gohome = $_GET['gohome']; // sprawdzamy czy zmienna $gohome nie jest pusta // sprawdzamy czy plik o danej nazwie istnieje // jezeli plik nie istnieje wyswietla się komunikat } // jezeli zmienna $gohome jest pusta wyswietla się strona glowna else require "strony/blabla.php"; ?> </div> <!--====================STOPKA============================--> <div id="stopka"> <?php require "strony/stopka.php"; ?> </div> </div> </body> </html>
baner.php i stopka.php (są identyczne) wczytują strony: home.php, oferta.php i blabla.php do div BOX:
<?php // sprawdzenie czy zmienna $add_site istnieje ?> <a href="index.php?gohome=home">HOME</a> | <a href="index.php?gohome=oferta">OFERTA</a> | <a href="index.php?gohome=blabla">blablabla</a>
Pliki home.php, oferta.php i blabla.php są praktycznie identyczne, różnią się tylko ścieżkami odniesienia do podkatalogów; home.php:
<?php // sprawdzenie czy zmienna $add_site istnieje ?> <div id="menu"> <?php require "strony/home/menuhome.php"; ?> </div> <!--================================INFO======================--> <div id="info"> <?php // sprawdzamy czy zmienna $gohome nie jest pusta // sprawdzamy czy plik o danej nazwie istnieje // jezeli plik nie istnieje wyswietla się komunikat } // jezeli zmienna $gohome jest pusta wyswietla się strona glowna else require "home/home1.php"; ?> </div>
home.php wczytuje przy użyciu require listę do div MENU oraz po najechaniu na linki w menu podstrony do div INFO za pomocą $_GET['gohome'];
Dla większej przejrzystości dodam jeszcze zrzuty z drzewa katalogów, żeby widać było, gdzie są umieszczone pliki:

Co ciekawe, bo div BOX wszystko wczytuje się elegancko, problem jest z zagnieżdżeniem, nie wczytuje plików do div INFO po naciśnięciu linku w div MENU, ale za to wczytuje ten sam plik, który jest zadeklarowany w:
przy starcie index.php.
// jezeli zmienna $gohome jest pusta wyswietla się strona glowna else require "home/home1.php";
Z tego wniosek, że takie podwójne includowanie może działać, gdzieś jest jednak błąd.
Jest jeszcze jeden problem - z jakiegoś powodu po naciśnięciu linku home w banerzu lub stopce i potem którego linka w menu, efekt jest taki, że ucina cały div Box z napisem, nie ma takiej strony... Nie dzieje się tak w z oferta i blabla, mimo że mają identyczny kod, sprawdzałem kilkakrotnie (różnią się tylko ściężkami dostępu do własnych podkatalogów...).
Proszę Was o pomoc, gdzie tutaj jest błąd, coś powinienem dodać, usunąć? Siedzę już nad tym któryś dzień i nie widzę wyjścia z sytuacji... jeszcze

A może użyć jakiejś innej techniki, która tutaj by się sprawdziła?
Pozdrawiam wszystkich, którzy dotarli aż tutaj. Jesteście Wielcy!!
