Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: index.php?id=art&txt=1
Forum PHP.pl > Forum > Przedszkole
Usr
Jak mam zrobic "podwojne includowanie" zeby bylo tak, ze wchodze w artykoly(index.php?id=art) i klikam pierwszy to zeby sie on wyswietlil? Czy moze jest nie potrzebne podwojne includowanie i mam w glownym pliku zaincludowac?
ARJ
niewiem jaką masz strukturę stronki ale ja robiłem coś takiego:
index.php?mod=arty&id=1
zmienna mod informuje include który modół ma załadować a id mówi którą pozycję ma wyświetlić z bazy danych. w tym wypadku odpala artykuł numer 1.
Chewolf
No to jak juz masz dany kod zeby robic : index.php?id=art to tam wrzuc teraz kod zeby miec index.php?mod=arty&id=1
Misiek
Możesz umieścić każdy artkuł w osobnym pliku. Każdy z nich nazwij numerem artykułu. Potem w zależności od $_GET['id'] includujesz odpowiedni plik

  1. <?php
  2.  
  3. include (&#092;"arty/\".$_GET['id'].\".txt\");
  4.  
  5. ?>


Pozdrawiam
Junior
  1. <?php
  2. if(!isset($_GET[s])) {
  3. include(&#092;"include/news.php\");
  4. } else {
  5. if(isset($_GET[id])) {
  6. if(file_exists(&#092;"include/$_GET[s]/$_GET[id].php\")) {
  7. include(&#092;"include/$_GET[s]/$_GET[id].php\");
  8. } else {
  9. include(&#092;"include/default.php\");
  10. }
  11. } else {
  12. if(file_exists(&#092;"include/$_GET[s].php\")) {
  13. include(&#092;"include/$_GET[s].php\");
  14. } else {
  15. include(&#092;"include/default.php\");
  16. }
  17. }
  18. }
  19. ?>

Automatycznie pokazuje Ci się zawartość strony news.php ktora znajduje się w folderze include a linki. Linki robisz tak:
index.php?s=cos&id=cos2
i wyswietla sie include/cos/cos2.php
albo index.php?s=cos
i wyswietla sie include/cos.php
W pliku default zrób tzw "stronę błędów" czyli wpisz np. "404 nie ma takiej strony" czy coś podobnego ; )
Pozdrawiam
jUnior
HaRy
Cytat(Junior @ 2004-09-27 12:31:00)
  1. <?php
  2.  /* ... */
  3. if(file_exists(&#092;"include/$_GET[s].php\")) {
  4. include(&#092;"include/$_GET[s].php\");
  5. }
  6.  /* ... */
  7. ?>


albo index.php?s=cos
i wyswietla sie include/cos.php

tia ... index.php?s=../index bedzie szczegolnie ciekawe ...

gratuluje junior...
hi-Res
Ok! One script coming up!

Może nie jest on arcydziełem programowania w php ale przynajmniej jest bardzo skuteczny.
  1. <?php
  2.  
  3. // zmienne z adresu
  4. $id = $_GET['id'];
  5. $go = $_GET['go'];
  6.  
  7. // konfiguracja
  8. $strona_domyslna = 1; // strona domyslna, skrypt będzie ją dołaczał kiedy nei znajdzie żadanego pliku.
  9. $folder = './content'; // folder z plikami do includowania
  10.  
  11. // reszta smieci
  12. if ( isset($go, $id) )
  13. {
  14. if ( !(file_exists($folder.'/'.$go.'/'.$id.'.php')) )
  15. {
  16. if ( file_exists($folder.'/'.$go.'/'.$id.'.php') )
  17. { 
  18. $strona = include ($folder.'/'.$go.'/'.$strona_domyslna.'.php');
  19. }
  20. else
  21. { 
  22. unset($go);
  23. $strona = include ($folder.'/'.$strona_domyslna.'.php'); 
  24. }
  25. }
  26. else $strona = include ($folder.'/'.$go.'/'.$id.'.php'); 
  27. }
  28. else if ( isset($id) && empty($go) )
  29. {
  30. if ( !(file_exists ($folder.'/'.$id.'.php')) ) 
  31. {
  32. $strona = include ($folder.'/'.$strona_domyslna.'.php');
  33. }
  34. else $strona = include ($folder.'/'.$id.'.php');
  35. }
  36. else
  37. {
  38. $strona = include ($folder.'/'.$strona_domyslna.'.php');
  39. }
  40.  
  41. if (!($strona)) echo 'BَD! Nie można otworzya pliku';
  42. ?>


katalogi:
contet <- w nim trzymasz pliki strony, które mają byc includowane.
content/inny_folder <- katalog "działowy", możesz mieć ich ile dusza zapragnie, pomogą utrzymać porządek kiedy plików będzie więcej.

Załóżmy teraz, że nawy plików w katalogach "content" i "inny_folder" to cyfry i mają rozszerzenie .php.

Do pliku w pierwszym katalogu odwołujesz sie tak ?id=1, ?id=2 itp.
(id=1 <- dołacz plik 1.php z katalogu "content")

Do drugiego tak ?go=inny_folder&amp;id=1.
(go=inny_folder&amp;id=1 <- dołącz plik 1.php katalogu "content/inny_folder")

Jeśli skrypt nie znajdzie żądanego pliku będzie próbował dołaczyć plik 1.php z katalogu "content", jeśli natomiast nie znajdzie takiego pliku wyświetki stosowny komunikat.

Wszystkie nazwy katalogów oraz zmiennych są umowne i oczywiście mogą być zmienione na inne.
HaRy
zapominacie o jednym ...

zmienne musza najpierw zwalidowane!
czy to przypadkiem nie zawieraja jakis kropek (../index - i juz petla w przykladzie Juniora), czy tez ograniczyc do okreslonej grupy dzialow itp

ostatni przyklad rowniez nie jest "odporny" na zapetlanie ...

pozdrawiam
ARJ
można krócej ale niejestem pewny czy ten skrypt jest lepszy i szybszy
  1. <?php
  2.  
  3. if(isset( $_GET['mod'])){
  4. include (&#092;"$_GET[mod].php\");
  5. }else{
  6. include (&#092;"news.php\");
  7. }
  8.  
  9. ?>
HaRy
luuudziieee ... nie pokazujcie takich badziwiakow tutaj ...

?mod=cos i juz mamy bledy
?mod=index i juz nieskonczona petla ...

litosci!
scanner
Jako że poziom spada na łeb na szyję, przenoszę php => Początkujacy.
xardas
  1. <?
  2. if(isset($_GET['id']) && file_exists($_GET['id'].&#092;".php\" && $_GET['id'] !== 'index')
  3. {
  4. include($_GET['id'].&#092;".php\");
  5. }
  6. else{
  7. include(&#092;"domyslny.php\");
  8. }
  9.  
  10. ?>


HaRy:
Cytat
tia ... index.php?s=../index bedzie szczegolnie ciekawe


Tjaaaa,a od kiedy php pozwoli na wejście np. do includes/../index.php ? ;]

edit: Ups,sorka aaevil.gif teraz dopiero zobaczyłem datę ;/
scanner
a czemu by miało nie pozwolić?
xardas
  1. <?
  2. include(&#092;"includes/../index.php\");
  3. ?>


http://xardas.kicks-ass.net:2001/~gothic/t.php

To chyba wszystko tłumaczy.
shizo
A jakże, a jakże... tłumaczy... gdyby jescze działało to może i by tłumaczyło :]
rogrog
ciekawe co bedzie z /etc/passwd ...
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.