Autor | Zpráva | ||
---|---|---|---|
rybarada Profil |
#1 · Zasláno: 2. 12. 2014, 11:34:16
Zdravím, řeším vkládání include (http://polopate.jakpsatweb.cz/?page=include2). Mám hlavní stránku, v ní odkazy a chci, aby se měnil hlavní text (např.při kliknutí na kontakty se zobrazí kontakty, při klinutí na onás se zobrazí text o nás apod...) a já to chci tak, že právě ta hlavní stránka bude pořád stejná, a jen se bude do ní vkládat jiný hlavní obsah při kliknutí na odkaz. Snad to někdo pochopí a pomůže mi, díky Adam
|
||
Taps Profil |
#2 · Zasláno: 2. 12. 2014, 11:37:50
rybarada:
to je hned následující díl http://polopate.jakpsatweb.cz/index.php?page=include3 |
||
juriad Profil |
#3 · Zasláno: 2. 12. 2014, 11:40:26
To je popsané na té následující stránce: http://polopate.jakpsatweb.cz/?page=include3
Budeš mít jeden soubor index.php, který bude podle proménné $_GET['page'] includovat různé soubory. Pak tvé odkazy budou:
index.php?page=onas , index.php?page=kontakty atp.
|
||
rybarada Profil |
#4 · Zasláno: 2. 12. 2014, 11:54:25 · Upravil/a: rybarada
To jsem právě nepochopil, ale potřebuju to vědět :(
respektive bych potřeboval ukázku celého kodu :) |
||
juriad Profil |
Zkus se víc rozepsat. Vypsat hodnotu parametru, se zdá, umíš. Jediné, co musíš přidat, je funkce include.
V nejjednodušším případě to bude takto: <?php include $_GET['page']; ?> Klidně si to vyzkoušej. Dej toto do souboru index.php a vedle něj vytvoř soubory onas (bez koncovky) a kontakty .
Pak návštěva stránky index.php?page=onas zobrazí obsah souboru onas.
Toto ale má hromadu chyb: 1) Co když ten parametr chybí. 2) Co když obsahuje neplatnou hodnotu. 3) Co když obsahuje něco nebezpečněho - pokud zadáš index.php?page=index.php , tak se bude PHP zblázní.
4) Vhodné je mít soubory k includu v nějakém adresáři oddělené od zbytku. 5) Vhodné je je mít s nějakou koncovkou, je vcelku jedno jakou. 6) Znovu se zamyslet nad zabezpečením. Některé z těchto chyb jsou v tom článku rovněž adresovány a vyřešeny. |
||
rybarada Profil |
#6 · Zasláno: 2. 12. 2014, 12:10:37 · Upravil/a: rybarada
a codělápřesně tedy tohle?
include $_GET['page']; Notice: Undefined index: page in C:\ComplexWebServer\http_docs\procvicko\index.php on line 2 Warning: include() [function.include.html]: Failed opening '' for inclusion (include_path='.;C:/ComplexWebServer/php5/include') in C:\ComplexWebServer\http_docs\procvicko\index.php on line 2 dbrý chybka se vloudila |
||
juriad Profil |
#7 · Zasláno: 2. 12. 2014, 12:30:06 · Upravil/a: juriad
Ta notice říká, že nebyl předán parametr page.
Ten warning řiká, že se pokusil includnout soubor, který neexistuje - jeho jméno bylo '' (prázdné). Jedná se přesně o první dva body, které jsem zmínil výše. Řešením je použít isset a file_exists nebo něco podobného. Podmínkám (if) se ale nevyhneš. rybarada: „a codělápřesně tedy tohle? include $_GET['page'];“ $_GET['page'] toto je přístup k prvku s indexem 'page' v poli jménem $_GET. Jedná se o superglobání pole, které obsahuje všechny parametry, které byly zadány v URL. include je příkaz, který chce jeden argument typu řetězec. Lze to tedy zapsat také jako: $stranka = $_GET['page']; include $stranka; |
||
rybarada Profil |
#8 · Zasláno: 2. 12. 2014, 12:38:06 · Upravil/a: rybarada
už chápu, díky moc
rybarada: jo, a to, že zatím includovaným souborem není žádná přípona, to tomu nijak nevadí, že? :) |
||
juriad Profil |
#9 · Zasláno: 2. 12. 2014, 12:57:13
To jen Windows má v oblibě přípony, nejsou však povinné. Soubor nemusí mít příponu. Ale pokud ji tam chceš mít, tak to změň na:
$stranka = $_GET['page'] . '.pripona'; # obvykle bude přípona asi php (aby se to otevíralo v rozumném editoru) include $stranka; A pak samozřejmě musíš všechny ty soubory přejmenovat, aby měly tu příponu. Alternativně můžeš zadávat parametr page i s příponou, ale předpokládám, že to není to, co bys chtěl dělat. Do teď jsi vlastně PHP říkal, aby includnul soubor, který se jmenuje stejně jako je hodnota parametru page. |
||
rybarada Profil |
#10 · Zasláno: 2. 12. 2014, 13:20:06
ok, ještě jenou díky
|
||
Časová prodleva: 11 let
|
0