[PHP] Include

co to za zmienna? skąd ona? dlaczego ma spację w nazwie?

Nie dość, że jest spacja to jeszcze nie jest zdefiniowana(no chyba że register_globals jest na on).

Zmień “o mnie”(z get) na “o_mnie” i powinno być dobrze(pozmieniaj jeszcze nazwy).

Powinno to mniej więcej tak wyglądać:

<?PHP

  include('strony/stale.txt');


  @$strona=$_GET['o_mnie'];             


  if (file_exists('strony/'.$strona.'.txt'))

   include('strony/'.$strona.'.txt');    



?>

Ja tu jeszcze zmieniłem zmienną $o_mnie na $strona no bo poco $strona jest zadeklarowana jak jest nie używana?

Mhm już to zmienilem ale dalej jak naciskam na hyperlink odpala mi się ściąganie pliku index.php .

Jak już mówilem nie mam pojęcia co wpisać w ,stale’’ i (przykladowo)

,o_mnie’’.

@Fiołek

Jak to nie używana?

Poza tym z tego co rozumiem wszędzie musi zostać o_mnie ponieważ

if (file_exists('strony/'.$o_mnie.'.txt')) 

   include('strony/'.$o_mnie.'.txt');

znaczy tyle co : jeśli istnieje w folderze ‘strony’ plik o nazwie o_mnie jako parametr, to wczytaj ten plik.

No a powiedz mi gdzie używasz zmiennej “$strona”? W tym kodzie jest tylko deklaracja tej zmiennej :wink:

Nie ma zmiennej $strona …

Zmienne, które tu są to ,stale’’ (która ma za zadanie w każdej podstronie wyświetlać stale elementy grafiki) i np. ,o_mnie’’ ( która ma za zadanie wyświetlać elementy zmienne w tym wypadku tekst lub linki do grafik)

Obie zmienne znajdują się w katalogu ,strony’’.

Jak nie ma zmiennej $strona jak jest?

przeanalizuj kod:

<?PHP

  include('strony/stale.txt');


  @$strona=$_GET['o mnie'];             


  if (file_exists('strony/'.$o mnie.'.txt'))

   include('strony/'.$o mnie.'.txt');    



?>

Nie rozumiem o co Ci chodzi? Co Ci nie działa?

albo ja nie rozumiem o czym Ty mówisz, albo Ty nie bardzo wiesz co napisałeś…

include(‘strony/stale.txt’); //includuje plik strony/stale.txt

@$strona=$_GET[‘o mnie’]; //zmiennej $strona przypisujesz wartość która została przekazana metodą GET z przeglądarki (czyli przez adres url) np. w takiej formie adresu index.php?o_mnie=WARTOSC_ZMIENNEJ_O_MNIE

if (file_exists(‘strony/’.$o mnie.’.txt’)) //sprawdzasz czy istnieje jakiś tam plik, wykorzystujesz do tego jakąś zmienną $o_mnie która nie została wcześniej zdefiniowana (zakładamy, że register globals jest off skoro korzystasz z $_GET)

include(‘strony/’.$o mnie.’.txt’); //includujesz ten plik, do którego adresu wciąż nie znasz…

Sugerowalem się tym kodem :

home
o mnie
konakt

[/code]

[code] <?PHP include(‘strony/gora.txt’); @$strona=$_GET[‘strona’]; if (file_exists(‘strony/’.$strona.’.txt’)) include(‘strony/’.$strona.’.txt’); else include(‘strony/home.txt’); include(‘strony/dol.txt’); ?>
Czyli u mnie wyglądalo by to tak :

O mnie[/code]

[code] <?PHP include(‘strony/stale.txt’); @$o_mnie=$_GET[‘o_mnie’]; if (file_exists(‘strony/’.$o_mnie.’.txt’)) include(‘strony/’.$o_mnie.’.txt’); ?>

Dalej nie wiem jednak najważniejszej rzeczy … które części kodu powinny znaleść się w ‘stale’ a które w (przykladowo) ‘o_mnie’

Źle przeczytałeś kod! Nie ma parametru(zmiennej) “o_mnie” tylko jest zmienna “strona”(chodzi o GETa). A stale.txt to nagłówek strony. Więc działający kod powinien wyglądać mniej więcej(ze wskazaniem na więcej) tak:

<?PHP

  include('strony/stale.txt'); //To jest nagłówek


  @$strona=$_GET['strona']; //To jest nazwa pliku ze stroną


  if (file_exists('strony/'.$strona.'.txt')) // Jeśli taki plik istnieje to go dołącza

   include('strony/'.$strona.'.txt');     

   else

      insluce('strony/dol.txt'); //To jest zakończenie strony


?>

a linku tak:

O Mnie

[/code]

Rozumiesz?

Gdzie co jest wiedzialem, mój bląd polegal na niezapoznaniu się z $_GET.

Ale w którym miejscu kody php tekst ,strona’’ zmienia się na nazwę pod_ strony?

O Mnie[/code]

Rozumiem, że link odwołuje się do indexu.php ten z kolei do adresu strony czyli pliku txt z kodem.

No i teraz to co mnie gryzie najbardziej.

Powiedzmy, że określiłem już sobie nagłówek czyli od początku kodu do div’a 15.

Potem jest zmienna strony czyli div 16

Następnie zakończenie strony czyli stopka ( div 18 )

  • wiemy, że elementy kodu są określone w stylach css…

I co mam teraz zrobić? Nagłówek strony ma sprawę z głowy bo zawiera sam w sobie już META i wartości tam określone (między innymi odniesienie do styli)

[color=orange]< EDIT : >[/color]

Podstronna już się odpala lecz dalej jest problem z treścią zmienną (div 16)

Ps: Naglówek i stopka są w jednym pliku txt ‘stale’ może tak pozostać czy lepiej rozdzielić kod?

[color=orange]< /EDIT >[/color]

Wybaczcie jeżeli moje pytania wydają się głupie, lecz rozwiązania potrzebuje szybko a nie znalazłem go nigdzie w sieci…

W wartości parametru strona(GET) NIE MOŻE być spacji. Musi być o_mnie(i tak się plik powinien nazywać[o_mnie.txt]) bo przeglądarka automatycznie zamienia ’ '(spację) na %20. I to chyba rozwiąże problem.

Tak jak napisał Fiołek -

http://r-site.ovh.org/index.php?strona=o_mnie

Tylko czy aby na pewno opłaci się w ten sposób … ?

Ech, głupi błąd - teraz oczywiście wszystko działa jak należy.

Jeszcze jedna sprawa i macie mnie z glowy.

Co muszę wpisać aby w podstronach zmieniał się tittle oraz żeby w podstronie były linki do innych podstron?

Słyszałem, że do tittle przyda się switch.

Co masz na myśli?

Teraz dodatkowo gdy zpróbowalem do index.php dodać reszte kodu odpowiedzialną za podstrony wyskakuje mi error :

Parse error: syntax error, unexpected '?' in /home/r/-/s/r-site/www/index.php on line 80

Index.php (pewnie znów coś spitolilem)

<?PHP


include('strony/stale.txt');


  @$o_mnie=$_GET['strona']; 				


  if (file_exists('strony/'.$o_mnie.'.txt'))

	include('strony/'.$o_mnie.'.txt'); 	


   else  

	include('strony/main.txt');		







include('strony/stale.txt');


  @$grafika=$_GET['strona']; 				


  if (file_exists('strony/'.$grafika.'.txt'))

	include('strony/'.$grafika.'.txt'); 	


   else  

	include('strony/main.txt');







include('strony/stale.txt');


  @$opowiadania=$_GET['strona']; 				


  if (file_exists('strony/'.$opowiadania.'.txt'))

	include('strony/'.$opowiadania.'.txt'); 	


   else  

	include('strony/main.txt');






include('strony/stale.txt');


  @$linki=$_GET['strona']; 				


  if (file_exists('strony/'.$linki.'.txt'))

	include('strony/'.$linki.'.txt'); 	


   else  

	include('strony/main.txt');







include('strony/stale.txt');


  @$main=$_GET['strona']; 				


  if (file_exists('strony/'.$main.'.txt'))

	include('strony/'.$main.'.txt'); 	


   else  

	include('strony/main.txt');



?>

Ty powiedz mi na co tyle powtórzeń zrobiłeś? Jedno wystarczy!

Powinno wyglądać tak:

include('strony/stale.txt');

@$main=$_GET['strona'];             


if (file_exists('strony/'.$main.'.txt'))

   include('strony/'.$main.'.txt');    

else

   include('strony/main.txt');

include('strony/stopka.txt');

A jak chcesz zmieniać tytuł to plik z nagłówkiem zapisz jako .php i w w tytule wstaw:

<?php echo $title; ?>

a na początku dodaj:

swith($_GET['strona'])

{

   case 'o_mnie':

      $title='O mnie';

      break;


   case 'artykuly':

      $title='Artykuły'; //To tylko taki przykład

      break;

}

Jak to jedno? Przecież mam pare podstron :sciana:

A co z hyperlinkami do poszczególnych podstron na każdej podstronie ?

Ale ten krótki skrypcik wczytuje strone podaną w parametrze “strona”. Niezależnie czy to jest o_mnie czy coś innego.

Móglbyś mi napisać jak ma wyglądać ten skrypt już z paroma podstronami … bo naprawdę już sie pogubilem …

include('strony/stale.txt');

@$main=$_GET['strona'];             


if (file_exists('strony/'.$main.'.txt'))

   include('strony/'.$main.'.txt');   

else

   include('strony/main.txt');

include('strony/stopka.txt');

Tak. To starczy. Ten skrypt sprawdza czy strona istnieje, jeśli istnieje dołącza ją, a jeśli nie, dołącza strone główną.

Ale tu jest określona tylko zmienna main tzn istnieje zmienna main -> wczytuje ją … Main to podstrona… skąd ma wiedzieć o podstronach o_mnie, kontakt itp :oops: