Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Modyfikacja skryptu podstron
Forum PHP.pl > Forum > PHP
NorQ
Witam, mam kod skryptu podstron:
  1. <?php
  2. $site = $_GET['site'];
  3. if(!empty($site)) {
  4. if(is_file("pages/sites/$site.php"))
  5. include "pages/sites/$site.php";
  6. else include "pages/error.php";
  7. }
  8. else include "pages/news.php";
  9. ?>


Ma on klasę ?site=NazwaStrony której katalogiem jest /pages/sites/ a jak dodać do niej jeszcze jedną klasę, np. ?page=NazwaStrony Której katalogiem będzie /pages/strony/ ? Chodzi mi że można wybrać sobię klasę w url, każda includuje pliki z własnego katalogu. Strona erroru i głównej strony są takie same dla wszystkich klas.

Jeżeli wiadomo o co chodzi, proszę o pomoc. wink.gif
CuteOne
To pytanie nadaje sie do przedszkola... skoro wiesz jak sprawdzić czy dana zmienna istnieje to chyba nie powinieneś mieć problemu z dodaniem if()?
NorQ
Ja sobie nie radzę najlepiej z kodem php... Może ktoś przedstawić gotowy kod ?

Wymyśliłem jakoś kod, ale ma błędy, np. sesja site wczytuje stronę główna z wszystkimi podstronami no i nie wyświetla strony błędu:

  1. <?php
  2. $site = $_GET['site'];
  3. $radio = $_GET['radio'];
  4.  
  5. if(!empty($site)) {
  6. if(is_file("modules/$site.php"))
  7. include "modules/$site.php";
  8. }
  9. if(!empty($radio)) {
  10. if(is_file("modules/radio/$radio.php"))
  11. include "modules/radio/$radio.php";
  12.  
  13. else include "modules/error.php";
  14. }
  15. else include "modules/news.php";
  16. ?>


Co tu poprawić?
!*!
  1. if($_GET['site'] == 'nazwastrony')) { indlude 'nazwastrony.php';}
NorQ
gdzie to w kodzie dodać?
!*!
W ogóle robisz to źle:

  1. switch ($_GET['site'])
  2. {
  3. case 'strona1':
  4. include 'page/strona1.php';
  5. break;
  6. case 'xxx':
  7. include 'xxx/xxx.php';
  8. break;
  9. case 'cokolwiek':
  10. include 'cokolwiek.php';
  11. break;
  12. default:
  13. include 'pages/default.php';
  14. }


Tak to się robi. I dodajesz sobie jakie chcesz strony, łącznie z pozycją, względem nazwy.
NorQ
Ja się nie chcę bawić w wspisywanie w kodzie .php - wolę includowanie od razu.
greycoffey
To zabezpiecz to tak, by nie było możliwe Local File Inclusion lub zapętlenie całego skryptu wink.gif
Mephistofeles
To zrób tak:
  1. $pages = array(
  2. 'strona1' => 'strona1.php',
  3. 'strona2' => 'costam.php'
  4. );
  5. if (array_key_exists($_GET['page'], $pages))
  6. include $pages[$_GET['page']];
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.