Autor Zpráva
quatzael
Profil
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
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 *
Rellik: v tomto případě by možná stačilo ?
include('/Slozka-Include/include.php');



protože / již značí kořen serveru
quatzael
Profil
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
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 *
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');
The document root directory under which the current script is executing
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
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
muflix:
Document_root vrací cestu k souboru tedy například index.php
Nevrací. DocumentRoot, Mapping URLs to Filesystem Locations.
muflix
Profil *
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.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: