Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]podstrony za pomocą GET
Forum PHP.pl > Forum > Przedszkole
dtrevo
Dlaczego strony php są tworzone ze pomocą podstron w '$_GET', przecież każda strona w osobnym pliku to jest duży większy ład i porzadek, a tak jest jeden plik po pare tysięcy linijek kodu.
ddiceman
Po to, by znacznej czesci kodu nie dublowac -> np. jakiegos naglowka, stopki, inicjalizowania sesji itp.
Powszechnie stosowana praktyka jest tworzenie jednego pliku, ktory odpowiada za serwowanie tresci (router) na podstawie przeslanych mu parametrow ($_GET), przy czym nie jest powiedziane, ze tresc te musi miec zawarta w sobie a nie w zewnetrznych plikacj (require(), include())
dtrevo
jedno nie wyklucza drugiego można przecież stworzyć klase, i każdą podstrone w osobnym pliku.
ddiceman
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
  1. [KOD NAGLOWKA]
  2. <?php
  3. switch($_GET['strona']){
  4. case 'news': require('news.php'); break;
  5. case 'gallery': require('gallery.php'); break;
  6. default: require('startowa.php');
  7. }
  8. ?>
  9. [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"
Fifi209
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
  1. <?php
  2. [KOD NAGLOWKA]
  3. switch($_GET['strona']){
  4. case 'news': require('news.php'); break;
  5. case 'gallery': require('gallery.php'); break;
  6. default: require('startowa.php');
  7. }
  8. ?>
  9. [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.

  1. <?php
  2. if (!empty($_GET['page'])) {
  3. $file = $_GET['page'].'.php';
  4. if (file_exists('dir/'.$file)) {
  5. include('dir/'.$file);
  6. }
  7. }
  8. ?>


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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.