Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 13. 11. 2012, 12:40:29
Studoval jsem URL odkazy zde, ale nejsem z toho moc moudrej..
Potřebuju používat v PHP include a tady na diskuzi jsem se dočetl, že snad vůbec nejde používat absolutní odkazy, čímž se ta nejužitečnější funkce, kterou include představuje, značně komplikuje.. přece když budu mít na jedný doméně sto různých stránek (myslím v různých podsložkách) a chci tam mít všude jednotné prvky jako navigaci apod., tak je určitě výhodnější mít jeden soubor pro každý společný prvek, který budou všechny ostatní stránky includovat, v jedný jediný složce.. tzn., že by z každý stránky vedl absolutní odkaz na konkrétní složku.. to ale podle všeho nejde (mě to teda nefunguje).. tak mě napadlo, že by se to dalo vyřešit kořenovou adresou. Podle výkladu v odkazu uvedém nahoře jsem pochopil, že je to prakticky to samé, jen nelze odkazovat na jiné domény.. ale to mi taky nefunguje!! do třetice, kdybych to teda musel složitě řešit přes relativní odkazy tak taky moc nechápu jak fungujou.. Jak má například vypadat relativní odkaz když se potřebuju dostat z indexu ve spodní větvi na soubor include.php?? |
||
Rellik Profil |
#2 · Zasláno: 13. 11. 2012, 12:45:43
No asi tak:
include ('../../../Slozka-Include/include.php'); Pro tyto více zanožené složky je lepší si definovat root servru a od toho pak psát cesty. Takže pak může být include přímo ve stylu: include(_ROOT_ . '/Slozka-Include/include.php'); // pouze jako ukázka |
||
muflix Profil * |
#3 · Zasláno: 13. 11. 2012, 12:53:43 · Upravil/a: muflix
Rellik: v tomto případě by možná stačilo ?
include('/Slozka-Include/include.php'); protože / již značí kořen serveru
|
||
quatzael Profil |
#4 · Zasláno: 13. 11. 2012, 12:59:30 · Upravil/a: quatzael
muflix:
ale pak by tenhle typ odkazu měl fungovat i v případě, že bych měl include.php ve stejný složce jako index.php.. tedy místo: include('include.php'); by mělo fungovat i: include('/Slozka-Abc1/Slozka-Abc2/Slozka-Abc3/include.php'); ale mě to nefunguje.. Rellik: A jak teda defunuju _ROOT_ toho serveru..?? Jak se to dělá?? |
||
Joker Profil |
#5 · Zasláno: 13. 11. 2012, 13:37:49
quatzael:
„snad vůbec nejde používat absolutní odkazy“ Absolutní cesty používat jde, ale musely by to být cesty v systému souborů, ne webové cesty. Čili místo např. /include/include.php by to muselo být např.: /var/www/muj_web/include/include.php nebo C:/www/muj_web/include/include.php .
Další možnost by byla definovat include_path pomocí set_include_path. Anebo si definovat konstantu, jak píše Rellik |
||
Tori Profil |
quatzael:
Nejjednodušší to je, jestli všechny stránky jdou přes nějaký index.php, uložený v tom "doména.cz" adresáři. dirname(__FILE__)
Pokud jednotlivé skripty fungují samostatně, šlo by to odvodit např. od $_SERVER['DOCUMENT_ROOT'] (vypište si, co obsahuje pole $_SERVER).
edit: Myslela jsem to v souvislosti s použitím té konstanty. muflix: „protože / již značí kořen serveru“ U mně značí / kořen souborového systému, nikoli serverový DocumentRoot. Ale možná to jinde (= s jiným nastavením serveru, include_path, ... něčeho) funguje, nevím.
|
||
quatzael Profil |
Tori:
mě to vypsalo: /var/www/web5/domena.cz/domena.cz (místo domena.cz je pochopitelně moje doména) Tori: Supr a funguje to!! Dík moc!! Radši jsem to udělal rovnou takhle: include($_SERVER['DOCUMENT_ROOT'] . '/Slozka-Include/include.php'); takhle by to mělo fungovat i kdyby poskytovatel něco na tom servru změnil, ne? |
||
muflix Profil * |
#8 · Zasláno: 13. 11. 2012, 14:12:47 · Upravil/a: muflix
quatzael, Tori: aha no možná jsem si to spletl s CSS :-)
quatzael: podle mě ti include($_SERVER['DOCUMENT_ROOT'] . '/Slozka-Include/include.php');
nebude fungovat když Document_root vrací cestu k souboru tedy například index.php tak by to muselo být include($_SERVER['DOCUMENT_ROOT'] . '../../../Slozka-Include/include.php'); nejlepší je si asi někde v nějakém conf.php nebo setup.php třeba definovat proměnnou $root = $_SERVER['DOCUMENT_ROOT'] a pak $root je vždy kořen serveru a pokuď to někdy po přesunu na jiný hosting přestane fungovat tak se to jen upraví v tom confu samozřejmě pokuď to spoustíš z index.php v rootu tak to pude |
||
quatzael Profil |
#9 · Zasláno: 13. 11. 2012, 14:27:22 · Upravil/a: quatzael
muflix:
no mě to tak fakt funguje.. „nejlepší je si asi někde v nějakém conf.php nebo setup.php třeba definovat proměnnou $root = $_SERVER['DOCUMENT_ROOT']“ to myslíš jako vytvořit soubor setup.php, to na něj zase ale musím všude nějak odkazovat, ne?? to bych stál zase před stejným problémem.. muflix: Jo, spouštím to v index.php |
||
Tori Profil |
#10 · Zasláno: 13. 11. 2012, 15:07:59
muflix:
„Document_root vrací cestu k souboru tedy například index.php“ Nevrací. DocumentRoot, Mapping URLs to Filesystem Locations. |
||
muflix Profil * |
#11 · Zasláno: 13. 11. 2012, 23:17:46 · Upravil/a: muflix
ted sem to zkousel, mate opet pravdu :P
quatzael: no ten conf.php stačí includovat do index.php a pokuď máš všechen obsah do indexu načítanej tak se ti to projeví všude. |
||
Časová prodleva: 11 let
|
0