Dowiedz się jak założyć sklep internetowy i zwiększyć sprzedaż
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Includowanie php
Autor Wiadomość
matoolek Offline
Użytkownik

Ilość postów: 20
Dołączył: 24-03-2011
Reputacja: 0
Post: #1
Includowanie php
Inlcudowanie php polega na wyciągnięciu przez php wartości pewnego pliku i wrzuceniu go w odpowiednie miejsce na stronie. Jest to bardzo przydatna funkcja – na początku tworzymy szablon strony, a w główne miejsce php wczyta kolejne "podstrony".

Zaczynamy od prostego szablonu xhtml:

Cytat: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Ćwiczymy includowanie php</title></head>
<body>
<div>To jest logo</div>
<!-- menu -->
<div style="float:left;width:300px">Menu
<ul><li><a href="#">test</a></li>
<li><a href="#">test</a></li></ul>
</div>
<div style="float:left">tutaj umieszczamy kod php</div>
</body>
</html>

Teraz omówię kod php, który wykorzystamy na stronie:
Cytat: <?php
$nr=$_GET['nr'];
define('katalog','inc');
$roz=array('.php','.txt');
if(preg_match('/^[0-9a-zA-Z_]*$/',$nr)){
for($i=0;$i<count($roz);$i++){
if(file_exists(katalog.'/'.$nr.$roz[$i])){
include(katalog.'/'.$nr.$roz[$i]);
break;
}
}
}
?>

Zmienna $nr jest pobierana z "paska adresu" (z tablicy GET). Następnie definiujemy katalog, w którym mieszczą się nasze podstrony (w moim przypadku jest to katalog inc). Kolejna linijka zawiera dozwolone rozszerzenia plików, z tym że kolejność jest ważna - mianowicie, jeśli posiadamy na serwerze dwa pliki o tej samej nazwie - zostanie zaincludowany (wczytany) ten, którego rozszerzenie jest wymienione jako pierwsze. W linijce 5 sprawdzamy, czy czasem ktoś nie spreparował zmiennej $nr (sprawdzamy czy zawiera ona tylko cyfry, litery i znak podkreślenia). Jeśli weryfikacja przebiegnie pomyślnie - uruchamiana jest pętla odpowiedzialna za rozszerzenia. Następnie sprawdzamy za pomocą funkcji file_exists czy dany plik istnieje na serwerze; jeśli tak jest - przerywamy pętlę, jeśli nie - sprawdzane jest kolejne rozszerzenie.
Kod ten wstawiamy w napisany wyżej szablon. Teraz wystarczy tylko odpowiednio przerobić nasze linki - należy zmienić atrybut href z "x.roz" na "?nr=x" usuwając rozszerzenie, tzn.:
test.php -> ?nr=test
podstrona1.txt -> ?nr=podstrona
jakas_strona.php -> ?nr=jakas_strona
W całości linki wyglądają tak:
<a href="?nr=test">test</a> (zostanie zaincludowana podstrona leżąca w folderze inc o nazwie test i rozszerzeniu php lub txt).
30-03-2011 13:46
Znajdź wszystkie posty użytkownika Zacytuj ten post w odpowiedzi
morus85 Offline
Użytkownik

Ilość postów: 60
Dołączył: 04-06-2009
Reputacja: 0
Post: #2
RE: Includowanie php
Mam podobny sposób lecz o wiele prostrzy. Jak będę na komputerze to go wrzucę.

Ale mam ten sam problem co ty widzę. A mianowicie. Po includowaniu takim twoj adres podstrony będzie wyglądał tak domena.pl/?nr=home jak zrobić aby wyglądał tak: domena.pl/home.php?

Może odpowiednia deklaracja w .htaccess by to załatwiła ale wątpię w to.

Jeśli wiesz jak poprzez includowaniu zrobić aby adres wyglądał tak domena.pl/home.php będę wdzięczny.

[url=http://www.website.info.pl]Projektowanie Stron Internetowych[/url]
[url=http://www.tomaszbaranek.pl][color=#000000]Freelancer webdesigner/webdeveloper[/color][/url]
[url=http://www.ostrowskagieldapracy.pl]Praca, Ogłoszenia Ostrów Wielkopolski[/url]
15-06-2011 19:46
Znajdź wszystkie posty użytkownika Zacytuj ten post w odpowiedzi
xfilo Offline
Użytkownik

Ilość postów: 9
Dołączył: 04-07-2011
Reputacja: 0
Post: #3
RE: Includowanie php
Tutaj jest kod
Kod PHP:
<?PHP
  
include('pages/home.php');

  @
$page=$_GET['page'];                 
  
  if (
file_exists('pages/'.$page.'.php'))
    include(
'pages/'.$page.'.php');     
  else  
    include(
'pages/home.php');             

  
?>
PS nie wiem czy to tak było, bo dawno to robiłem Smile

www.hackinghack.pl Blog i portfolio
Kontakt email: xfilo@wp.pl
GG: 2418130
Strona w budowie
(Ten post był ostatnio modyfikowany: 12-07-2011 15:07 przez xfilo.)
12-07-2011 15:06
Znajdź wszystkie posty użytkownika Zacytuj ten post w odpowiedzi
Odpowiedz 


Skocz do: