[PHP] Include - problem

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Austrolopitek
Posty: 4
Rejestracja: ndz mar 23, 2008 6:26 pm

[PHP] Include - problem

Post autor: Austrolopitek »

Witam dopiero raczkuję w php wiec prosze o wyrozumiałość, pytanie być może banalne, ale dla mnie czarna magia :)

Obrazek

Przypuśćmy ze klikam w pierwszy link, podstrona ładuje mi się miejscu gdzie jest kod include. W podstronie link jest tekst i jakiś inny link

Obrazek

Jak powinien wyglądac kod hiperłącza ze strony includowanej, by podstrona z link1 załadowała się w tym samym miejscu?

Mam nadzieje, ze jakoś w miare zrozumiale wytłumaczyłem o co mi chodzi xP

Kod: Zaznacz cały

<? 
	  $page = $_GET['id'];
  if($page=="") $page="news";
  if(!file_exists($page.".php"))
  {
    echo "Taka strona nie istnieje";
  }
  else
  {
    include_once $page.".php";
  }

?>
!ans
Nowy
Nowy
Posty: 131
Rejestracja: wt gru 11, 2007 9:59 pm
Lokalizacja: zza rogu

Re: [PHP] Include - problem

Post autor: !ans »

Wogóle to ja bym zrobił tak:

Kod: Zaznacz cały

<?php
function x(y) {
	if(!file_exists($y.".php")) {
    	echo "Taka strona nie istnieje";
  	}
  	else {
  		include_once $y.".php";
  	}
}

$page = $_GET['id'];
x($page);
?>
I link do podstrony:

Kod: Zaznacz cały

http://nazwa_strony/nazwa_pliku_z_tym_kodem?id=news
I wtedy wstawi plik news.php.
Austrolopitek
Posty: 4
Rejestracja: ndz mar 23, 2008 6:26 pm

Re: [PHP] Include - problem

Post autor: Austrolopitek »

Niedokładnie mi o to chodziło.

Problem w tym ze nie wiem jak powinien wyglądać kod hiperłącza/ kod podstrony (?) DO KTÓREJ ma być wczytana kolejna podstrona. Wczytywanie wewnątrz funkcji -nie jestem pewny czy to tak się nazywa :P
!ans
Nowy
Nowy
Posty: 131
Rejestracja: wt gru 11, 2007 9:59 pm
Lokalizacja: zza rogu

Re: [PHP] Include - problem

Post autor: !ans »

To jest właśnie ten adres - adres strony i ?id=news czyli deklaracja tej zmiennej GET z której wynika ,która podstrona ma być wczytana.
Austrolopitek
Posty: 4
Rejestracja: ndz mar 23, 2008 6:26 pm

Re: [PHP] Include - problem

Post autor: Austrolopitek »

Wybacz, ze o takie drobiazgi pytam. Ten kod który podałeś to mam podmienić w index.php w miejscu tego co mam obecnie?
!ans
Nowy
Nowy
Posty: 131
Rejestracja: wt gru 11, 2007 9:59 pm
Lokalizacja: zza rogu

Re: [PHP] Include - problem

Post autor: !ans »

Znaczy tak może zostać tamten ,ale wtedy do każdej podstrony musisz dodać nową instrukcje warunkową ,a tak nie ważne czy tych plików będzie dziesięć czy milion tyle kodu wystarczy. Musisz tylko w adresie wpisać nazwę pliku i taki plik z rozszerzeniem .php musi istnieć w tym katalogu. Ale co do twojego pytania: TAK.
Austrolopitek
Posty: 4
Rejestracja: ndz mar 23, 2008 6:26 pm

Re: [PHP] Include - problem

Post autor: Austrolopitek »

hmm zrobiłem tak jak należy (przynajmniej tak mi sie wydaje), wgrywam na serwer pokazuje mi się błąd
Parse error: syntax error, unexpected T_STRING, expecting ')' in /var/www/sites/yoyo.pl/l/a/strona/index.php on line 17
w lini 17 znajduje się ten kawałek kodu

Kod: Zaznacz cały

function x(y) {
!ans
Nowy
Nowy
Posty: 131
Rejestracja: wt gru 11, 2007 9:59 pm
Lokalizacja: zza rogu

Re: [PHP] Include - problem

Post autor: !ans »

Kod: Zaznacz cały

<?php
function x($y) {
if(!file_exists($y.".php")) {
echo "Taka strona nie istnieje";
}
else {
$file = $y.".php";
include_once $file;
}
}
$page = $_GET['id'];
x($page);
?>
Zapomniałem znaczka dolara przy deklaracji funkcji.
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [PHP] Include - problem

Post autor: the_foe »

!ans pisze:Wogóle to ja bym zrobił tak:

Kod: Zaznacz cały

<?php
function x(y) {
	if(!file_exists($y.".php")) {
    	echo "Taka strona nie istnieje";
  	}
  	else {
  		include_once $y.".php";
  	}
}

$page = $_GET['id'];
x($page);
?>
I link do podstrony:

Kod: Zaznacz cały

http://nazwa_strony/nazwa_pliku_z_tym_kodem?id=news
I wtedy wstawi plik news.php.
i wtedy robie co chce

Kod: Zaznacz cały

http://nazwa_strony/nazwa_pliku_z_tym_kodem?id=http://mojadomena.pl/mojkodphp
oczywiscie mozna wylaczyc "allow_url_include" i "allow_url_fopen" ale lepiej po prostu pisac kod z glowa
morphi99
Posty: 3
Rejestracja: sob lut 02, 2008 4:37 pm

Re: [PHP] Include - problem

Post autor: morphi99 »

A czy ten skrypt jest bezpieczny ?
[php]
<?php
function x($y) {
if(!file_exists($y.".php")) {
echo "Taka strona nie istnieje";
}
else {
$file = $y.".php";
include_once $file;
}
}
$page = $_GET['id'];
x($page);
?>[/php]
!ans
Nowy
Nowy
Posty: 131
Rejestracja: wt gru 11, 2007 9:59 pm
Lokalizacja: zza rogu

Re: [PHP] Include - problem

Post autor: !ans »

the foe ma rację czyli NIE
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [PHP] Include - problem

Post autor: the_foe »

morphi99 pisze:A czy ten skrypt jest bezpieczny ?
[php]
<?php
function x($y) {
if(!file_exists($y.".php")) {
echo "Taka strona nie istnieje";
}
else {
$file = $y.".php";
include_once $file;
}
}
$page = $_GET['id'];
x($page);
?>[/php]

to jest dokladnie ten sam kod i tak samo niebezpieczny.
w ogole uzywanie includow w ten sposob na dluzsza mete jest zle.
Ale jak wstawi regulke :
[php]
$page=preg_replace("/[^A-z]/","",$_GET['id']);
[/php]

i teraz system wezmie pod uwage nazwy wylacznie zawierejace litery
ooo_michal
Przelotem
Przelotem
Posty: 245
Rejestracja: śr kwie 18, 2007 9:06 am

Re: [PHP] Include - problem

Post autor: ooo_michal »

ODPOWIEDZ