Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]podstrony za pomocą GET
dtrevo
post 18.03.2009, 13:11:33
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 5.12.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
ddiceman
post 18.03.2009, 13:22:22
Post #2





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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())
Go to the top of the page
+Quote Post
dtrevo
post 18.03.2009, 13:38:10
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 5.12.2008

Ostrzeżenie: (0%)
-----


jedno nie wyklucza drugiego można przecież stworzyć klase, i każdą podstrone w osobnym pliku.
Go to the top of the page
+Quote Post
ddiceman
post 18.03.2009, 16:09:52
Post #4





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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"
Go to the top of the page
+Quote Post
Fifi209
post 18.03.2009, 21:28:46
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:24