Cytat(ddiceman @ 18.03.2009, 16:09:52 )

To wlasnie napisalem - w index.php router (lub include/require jego klasy) + w zaleznosci od wartosci $_GET include/require innych plikow. Na przykladzie:
index.php
<?php
[KOD NAGLOWKA]
switch($_GET['strona']){
case 'news': require('news.php'); break;
case 'gallery': require('gallery.php'); break;
default: require('startowa.php');
}
?>
[KOD STOPKI]
i kodu w routerze jest tylko tyle i koniec. Chyba, ze Twoje pytanie brzmialo "dlaczego strony PHP tworzone sa tak, ze WSZYSTKO pakuje sie do jednego pliku i po nim skacze instrukcjami sterujacymi". Odpowiedz: "nie sa tak tworzone a Ci ktorzy to robia, robia to zle"
Ja bym proponował inne rozwiązanie, gdyż switch przy 100 linkach nie będzie efektywny.
<?php
if (!empty($_GET['page'])) { $file = $_GET['page'].'.php';
include('dir/'.$file);
}
}
?>
Ja jeszcze używam wyrażeń regularnych np.
Nazwa podstrony może zawierać tylko: a-zA-Z0-9 i musi mieć przynajmniej 3 znaki (np. faq, krótsze nazwy nie są potrzebne)
^[a-zA-Z0-9]{3}$
Chyba tak to leciało. ;d