Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]GET i include. Jak powinno być porządnie
szyn33k
post
Post #1





Grupa: Nieautoryzowani
Postów: 18
Pomógł: 0
Dołączył: 3.01.2013

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


Witam!
Mam pewien skrypt i w nim kawałek kodu:

  1. <?php
  2. if(empty($_GET['page']) or $_GET['page']=='newsy') { include('newsy.php'); }
  3. elseif($_GET['page']=="rejestracja") { include("rejestracja.php"); }
  4. elseif($_GET['page']=="logowanie") { include("panel-uzytkownika.php"); }
  5. elseif($_GET['page']=="admin") { include("panel-admina.php"); }
  6. elseif($_GET['page']=="wyloguj") { include("wyloguj.php"); }
  7. elseif($_GET['page']=="login") { include("newsy.php"); }
  8. elseif($_GET['page']=="komentarz") { include("komentarz.php"); }
  9. elseif($_GET['page']=="lista") { include("lista.php"); }
  10. elseif($_GET['page']=="profil") { include("profil.php"); }
  11. elseif($_GET['page']=="mecze") { include("mecze.php"); }
  12. elseif($_GET['page']=="galeria") { include("galeria.php");; }
  13. elseif($_GET['page']=="druzyny") { include("druzyny.php"); }
  14. elseif($_GET['page']=="kadra") { include("kadra.php"); }
  15. elseif($_GET['page']=="kontakt") { include("kontakt.php"); }
  16. elseif($_GET['page']=="moj-profil") { include("moj-profil.php"); }
  17. elseif($_GET['page']=="newmail") { include("newmail.php"); }
  18. elseif($_GET['page']=="mymail") { include("mymail.php"); }
  19. elseif($_GET['page']=="sentmail") { include("sentmail.php"); }
  20. elseif($_GET['page']=="przypomnij") { include("przypomnij-haslo.php"); }
  21. ?>


według mnie nie wygląda to zbyt ładnie. Jest jakiś sposób aby to uprościć i aby to wyglądało w miarę profesjonalnie?
Pozdrawiam (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
aras785
post
Post #2





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


może switch lub dynacznie ale wtedy musisz troche zabezpieczyć skrypt
Go to the top of the page
+Quote Post
mieszkos
post
Post #3





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

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


edit: @down : racja napisałem głupotę, nie pomyślałem.


Ten post edytował mieszkos 4.01.2013, 00:53:01
Go to the top of the page
+Quote Post
peter13135
post
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


@up. Sprawdź sam jak to zadziała (IMG:style_emoticons/default/wink.gif)


  1. $list = array('rejestracja.php' => 'rejestracja', 'logowanie.php' => 'logowanie');//uzupełnij sobie sam ;)
  2. $get = $_GET['page'];
  3. if( ($filename = array_search($get, $list)) != false )
  4. {
  5. include $filename;
  6. }
  7. else
  8. {
  9. //error 404, chyba masz bana
  10. }
Go to the top of the page
+Quote Post
mieszkos
post
Post #5





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

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


Walnąłem głupotę więc się poprawiam


  1. <?php
  2.  
  3. $list = array('rejestracja' => 'rejestracja.php', 'logowanie' => 'panel-uzytkownika.php');
  4. $get = $_GET['page'];
  5.  
  6. switch($get) {
  7. case array_key_exists($get, $list):
  8. include($list[$get]);
  9. break;
  10. default:
  11. include('error-page.php');
  12. break;
  13. }
  14. ?>
Go to the top of the page
+Quote Post
mokry
post
Post #6





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Bardzo dużo elementów tablicy posiada taki sam klucz i nazwę pliku (tyle, że z rozszerzeniem .php).
Możesz zrobić tablicę, w której przechowywać będzies tylko te strony, które posiadają różne pliki w stosunku do nazwy w adrsie URL.
I teraz tak: sprawdzać, czy istnieje w tablicy wyjątek ('logowanie' => 'panel-uzytkownika.php') i jeśli tak, ładować te pliki, a jeśli nie ma w tablicy, to ma załadować plik o tej samej nazwie co request , tylko dodać .php na końcu.
Oczywiście ze względów bezpieczeństwa proponuję sprawdzić, czy nie ma nigdzie w przekazanej wartości żadnych niebezpiecznych ciągów, oraz czy plik istnieje (np. w określonej na sztywno lokalizacji).
Jeżeli nie będzie pliku na serwerze, wtedy include jakiejś strony z błędem.
Go to the top of the page
+Quote Post
peter13135
post
Post #7





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


@mieszkos
Cytat
Walnąłem głupotę więc się poprawiam

tzn. walisz większą głupotę ? (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował peter13135 4.01.2013, 02:55:08
Go to the top of the page
+Quote Post
mieszkos
post
Post #8





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

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


@up

czemu ?
Go to the top of the page
+Quote Post
CuteOne
post
Post #9





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. $modules = array(
  2. 'default' => 'default.php',
  3. 'reg' => 'rejestracja.php',
  4. 'graph' => 'graph/graph.php'
  5. );
  6.  
  7. $id = !empty($_GET['id']) ? $_GET['id'] : 'default';
  8.  
  9.  
  10. if(isset($modules[$id])) {
  11.  
  12. require_once $modules[$id];
  13. }
  14. else {
  15.  
  16. require_once $modules['default'];
  17. }


Ten post edytował CuteOne 4.01.2013, 15:18:46
Go to the top of the page
+Quote Post
szyn33k
post
Post #10





Grupa: Nieautoryzowani
Postów: 18
Pomógł: 0
Dołączył: 3.01.2013

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


Dziękuję bardzo za pomoc (IMG:style_emoticons/default/smile.gif) o to mi chodziło (IMG:style_emoticons/default/smile.gif)
Można zamknąć (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 1.01.2026 - 19:23