Autor | Zpráva | ||
---|---|---|---|
Nailen Profil |
#1 · Zasláno: 21. 2. 2021, 17:24:25
Zdravím, rozjíždím jeden script a nedaří se mi nadefinovat absolutní cesty.
mám tento script: $abs_us_root=$_SERVER['DOCUMENT_ROOT']; $self_path=explode("/", $_SERVER['PHP_SELF']); $self_path_length=count($self_path); $file_found=FALSE; for($i = 1; $i < $self_path_length; $i++){ array_splice($self_path, $self_path_length-$i, $i); $us_url_root=implode("/",$self_path)."/"; if (file_exists($abs_us_root.$us_url_root.'z_us_root.php')){ $file_found=TRUE; break; }else{ $file_found=FALSE; } } ten mi vygeneruje, že v $abs_us_root mám hodnotu /home/www/mojedomena.cz/www
a v $us_url_root mám hodnotu /
Když se to následně zpracuje tímto: require_once $abs_us_root.$us_url_root.'users/helpers/helpers.php'; Tak dostanu chybové hlášení: Warning: require_once(/home/www/mojedomena.cz/www/users/helpers/helpers.php): failed to open stream: No such file or directory in /home/www/mojedomena.cz/subdomains/mojesubdomena/users/init.php on line 28 Takže cesta k souboru helpers.php je tato: /home/www/uctenka.eu/www/users/helpers/helpers.php
ale je tam navíc to druhé www a chybí tam adresář pro subdomény a samotná moje subdoména. Když jsem obě hodnoty naplnil ručně na tyto hodnoty: $abs_us_root = '/home/www/mojedomena.cz/'; $us_url_root = 'subdomains/mojesubdomena/'; Tak jsem se přes tuto chybu dostal dál. Ale nastává problém u dalších scriptů, kde se volá proměnná $us_url_root
Pak se mi do ní samozřejmě vkládá to co jsem tam nadefinoval a např. pro obrázky se mi generuje tato adresa: mojesubdomena.mojedomena.cz/subdomains/mojesubdomena/users/images/logo.png kde je navíc právě tento text: /subdomains/mojesubdomena
Jak bych to měl řešit, aby to bylo univerzální a začalo to fungovat? Předpokládám, že budu muset nějak upravit ten úvodní script, aby všechny ostatní volání mohli být stejné. Předem díky za radu |
||
Keeehi Profil |
#2 · Zasláno: 21. 2. 2021, 22:10:48
Nailen:
Můžu říct, že ten projekt se mi vůbec nelíbí. Má to na 4 místech prakticky stejný kód na zjištění té samé informace. Odmítám se zabývat tím, který šikula a proč to takhle vytvořil. Nejjednodušší řešení bude to na všech místech natvrdo přepsat na hodnoty co fungují. $_SERVER['DOCUMENT_ROOT'] se v projektu nachází v těchto 4 souborech:
- users/init.php - users/helpers/deprecated.php - users/helpers/us_helpers.php - z_us_root.php Jinak pole $_SERVER se využívá celkem na 71 místech v 28 souborech. Tak doufej, že ostatní hodnoty v tom poli nebudou dělat problémy.
|
||
Nailen Profil |
#3 · Zasláno: 22. 2. 2021, 20:50:05
Tak nakonec to byla jednoduchá úprava. Stačilo obsah proměnné $us_url_root přidat na konec proměnné $abs_us_root a v $us_url_root nechat jen / a vše šlape jak má.
|
||
Časová prodleva: 3 roky
|
0