Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zasada uruchamiania modulow w CMSach
Forum PHP.pl > Forum > PHP
elmozaur
Witajcie.
W ramach poznawania PHP zabralem sie za pisanie prostego CMSa.
Mam juz baze MySQL, pliki konfiguracyjne, moduly ktore inkluduje sie do obslugi odpowiednich podstron (kontakt.php, mapa.php, tresc.php).

I teraz prosze o wsparcie teoretyczne gdyz zatrzymalem sie na nastepujacej kwesti:
Jak mozna zrobic obsluge tych modulow?
Przyklad:
Mam adres http://www.mojastrona.pl/index.php?strona=...kat=2&sek=4
Tu sprawa jest prosta gdyz w pliku index.php moge zrobic instrukcje warunkowa, ktora w zaleznosci od wartosci zmiennej strona pobranej GETem inkluduje odpowiedni modul (w tym przypadku plik tresc.php).

Problem mam jednak z czyms takim http://www.mojastrona.pl/index.php?strona=...kat=2&sek=4
W tym przykladzie zakladam ze plik index.php jest juz na serwerze i nie bede w nim grzebal. Plik z obsluga galerii (np galeria.php)
wrzucam np do katalogu moduly. Jak teraz moge (nie ruszajac index.php) dodac obsluge tego dodatkowego pliku.

Jak to sie robi w innych CMSach jak joomla, php-nuke itp
Wiem ze jest tam mozliwosc instalowania dodatkowych modulow (plikow php)

za wszelkie info dziekuje i pozdrawiam
Grzesiek
Piotrwusek
dokładnie

tresc odnosi sie np do

moduly/tresc/index.php

a galeria np

moduly/galeria/index.php


  1. <?php
  2. include("moduly/".$_GET['strona']."/index.php");
  3. ?>
elmozaur
dziekuje.
O takie rozwiazanie mi chodzilo.
l0ud
A ja sobie w stronę wpiszę ../ i zawalę cały serwer. Proponuję utworzyć dodatkowy plik / tabelę w bazie danych z modułami - struktura może być prosta - nazwa wywołania i nazwa pliku smile.gif
wrzasq
@elmozaur: ale nie zapomnij o zabezpieczeniach, kod Piotrwusek'a to tylko ogolny mechanizm, pamietaj o uzyciu na przyklad if( file_exists(...) ), czy basename(). poza tym polecam uzywac inna nazwe pliku (na przyklad main.php) a index.php zostawiac na zabezpieczenie przed przegladaniem katalogu (jesli ktos wejdzie do twojego katalogu, gdzie index.php jest czesciowym modulem, to skrypt zacznie pluc bledami).

-edit-

akurat pisalem posta, gdy l0ud sie wtracil tongue.gif.
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.