Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: W HTML sa ramki, a w php (how_to_do)?
Forum PHP.pl > Forum > Przedszkole
Gość_yaRiS
nie wiem jak konstruowane sa serwisy pisane w php, w ktorych po najechaniu na dany link umieszczony np. po lewej stronie, wczyta sie zawartosc jakiegos innego pliku (*.txt, etc.) w wyznaczonym miejscu strony www, np. po prawej stronie.

oczywiscie nie chodzi mi o wczytanie za kazdym razem (calej) innej strony. nie chce zamotac biggrin.gif - poprostu mam jeden plik np index.html - i tam pewne wyswietlane elementy nie moga sie zamieniac, a pewne powinny byc wczytywane. czy to wogole mozliwe bez uzycia ramek?

pomocy! ohmy.gif
strife
Pierwsze co musisz zrobić to poszukać ! podpowiem Ci że jest to między innymi możliwe dzięki require" title="Zobacz w manualu php" target="_manual i include" title="Zobacz w manualu php" target="_manual ...

Jeden z kilku znalezionych przezemnie linków
http://forum.php.pl/index.php?showtopic=34828

pozdro!
Gość_yaRiS
dzieki biggrin.gif, szukam....
siutek
wystarczy ze zrobisz cos takiego (jak juz wspomnial strife):

  1. <?php
  2.  
  3. if ($_GET['body'] == "") {
  4. $body="glowna";
  5. } else {
  6. $body=$_GET['body'];
  7. }
  8. include ("./poddzialy/".$body.".html");
  9.  
  10. ?>

to umiesc w miejscu gdzie chcesz wszystko wczytywac


a w menu podawaj adresy z parametrem body, np.:
./index.php?body=glowna
./index.php?body=ksiega

parametr body to nazwa wczytywanego pliku, tylko bez rozszerzenia
Guest
lepiej to zrobic przy uzyciu switcha, np.

  1. <?php
  2. switch($_GET['strona'])
  3. {
  4. default:
  5. // to bedzie ladowane defaultowo, np. include('default.html');
  6. break;
  7.  
  8. case 'stronka1':
  9. // instrukcje, np. include('stronka1.html');
  10. break;
  11.  
  12. case 'stronka2':
  13. // instrukcje, np. include('stronka2.html');
  14. break;
  15. }
  16. ?>


i teraz odpowiednio:
index.php?strona=stronka1
index.php?strona=stronka2
siutek
Cytat
lepiej to zrobic przy uzyciu switcha, np.


chyba jednak sie mylisz, w wypadku gdy masz w serwisie 50 podstron, w instrukcji switch musisz 50 razy pisac cala instrukcje include. Natomiast jesli zrobic to po mojemu, bez wzgledu na to ile masz podstron w serwisie, czy to 2, czy 200 - kod ktory podalem wyzej nie zmienia sie.
nospor
@siutek ale przy twojej metodzie zawsze widac w url nazwe pliku do includowania. to nie jest zbyt dobry pomysl. a przy switchu mozna w parametrze wpisac "alamakota" a includowac plik "azosiapsa". smile.gif
dtb
oj siutek siutek:
./index.php?body=../../../../../../plik_z_konfiguracja%00

mozna ustawic kilka filtrow:
  1. <?php
  2. intval() //zamienia kazdy ciag znakow na liczbe
  3. substr() //obcina tekst do okreslonej liczby znakow
  4. $tekst = str_replace ('..', '', $tekst) //usuwa dwie kropki z tekstu
  5. addslashes() //escapuje niebezpiecze znaki
  6. function alnum ($tekst) {
  7. $wynik = NULL;
  8. for ($i=0; $i<strlen ($tekst); $i++)
  9. if (ctype_alnum ($tekst[$i]))
  10. $wynik .= $tekst[$i];
  11. return $wynik;
  12. }
  13. $znaki = alnum ($znaki); //usuwa znaki nie alfanumeryczne
  14. ?>


...
Gość_yaRiS
...nie wiem co robie nie tak!
korzystam z powyzszych rad i nie wogole nie dziala sad.gif, a robie tak:

w index.htm umieszczam w jednej z tabel taki kod:
  1. <?php
  2. if ($_GET['body'] == "") {
  3. $body="glowna";
  4. } else {
  5. $body=$_GET['body'];
  6. }
  7. include ("cos.txt");
  8.  
  9. ?>


i chce zeby po najechaniu na jeden z linkow umieszczonych w innej tabeli <a href="index.htm?body=glowna">glowna</a> wyswietlila mi sie zawartosc pliku cos.txt (plik jest w tym samym kadalogu co index) w tabeli gdzie jest powyzszy kod z include.
(kod testuje pod apachem na lokalnym kompie)

gdzie dalem plame??
pozdro
Gość_yaRiS
smile.gif ale dalem d... - trzeba bylo kod umiescic w index.php a nie index.htm.

...tak czsem bywa jak sie zaczyna,
i raz jeszcze wielkie dzieki 4all za pomoc, jol
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.