Autor | Zpráva | ||
---|---|---|---|
Prefin Profil |
#1 · Zasláno: 8. 5. 2012, 12:27:07
Ahojda.
Potřeboval bych trochu poradit s následující drobností. Mám dva weby (na stejném hostingu), každý na jiné doméně II. řádu. Na jednom ukládám logy určitých aktivit do souborů po dni. Z druhého webu potřebuji načítat obsah složky s logy a nějak se mi to nedaří otevřít. Zadávám absolutní cestu a práva u složky i souborů mám 777. Jednotlivý soubor bez problémů přečtu pomocí file_get_contents("absolutnicesta.soubor") Tohle mi na načtení nefunguje a myslím že ani nemůže (na jiný web tedy): $adresar = "absolutnicesta"; $spojeni = opendir($adresar); while (false!==($file = readdir($spojeni))) { if ($file != "." && $file != "..") echo $file; } closedir($spojeni); Najde se nějaký ekvivalent i pro opendir() který by uměl otevřít vzdálený adresář? Díky |
||
Davex Profil |
#2 · Zasláno: 8. 5. 2012, 12:40:58
Nevím, co je v té absolutní cestě, ale přes http:// nejde načítat obsah vzdálených adresářů. Funkce
opendir() a spol., scandir() nebo třída DirectoryIterator jsou použitelné pouze lokálně v rámci souborového systému na serveru.
|
||
Prefin Profil |
#3 · Zasláno: 8. 5. 2012, 12:56:50
V absolutní cestě je /home/domeny/trzistepoptavek.com/web/subdomeny/www/log/5-05-2012.txt.
Jenom mě napadlo že když to jde vyřešit u čtení jednotlivého souboru tak půjde zjistit i obsah odresáře. Ale asi by to bylo možná bezpečnostní riziko. |
||
Davex Profil |
#4 · Zasláno: 8. 5. 2012, 13:28:35
Pro načtení adresáře by měl být v cestě jen adresář.
$adresar = "/home/domeny/trzistepoptavek.com/web/subdomeny/www/log/"; $spojeni = opendir($adresar); |
||
Prefin Profil |
#5 · Zasláno: 8. 5. 2012, 14:02:38
Ale no jo, jsem blb - jen jsem to napsal blbě sem.
Nejspíš asi obsah vzdálené složky prostě vypsat nejde takže jsem to musel vyřešit vypsáním obsahu adresáře do souboru a pak s tím pracovat dál. |
||
Davex Profil |
Myslím, že pokud nejsi omezen zapnutým safe_mode nebo open_basedir, tak by to fungovat mohlo. Vypíše to alespoň nějakou chybu, když si zapneš jejich vypisování?
ini_set('display_errors', 'on'); error_reporting(E_ALL); |
||
Prefin Profil |
#7 · Zasláno: 8. 5. 2012, 15:48:26
Hlášku to vypsalo.
Při absolutní cestě $adresar = "/home/domeny/kampropenize.cz/web/subdomeny/www/log/"; $spojeni = opendir($adresar); Warning: opendir() [function.opendir]: open_basedir restriction in effect. File(/home/domeny/kampropenize.cz/web/subdomeny/www/log) is not within the allowed path(s): (/home/domeny/trzistepoptavek.com/web/subdomeny:/home/domeny/trzistepoptavek.com/web/tmp:/usr/share/php5:/tmp:/home/apps) in /home/domeny/trzistepoptavek.com/web/subdomeny/www/ad/log_kam.php on line 41 Warning: opendir(/home/domeny/kampropenize.cz/web/subdomeny/www/log/) [function.opendir]: failed to open dir: Operation not permitted in /home/domeny/trzistepoptavek.com/web/subdomeny/www/ad/log_kam.php on line 41 $adresar = "http://kampropenize.cz/log/"; $spojeni = opendir($adresar); Warning: opendir(http://www.kampropenize.cz/log/) [function.opendir]: failed to open dir: not implemented in /home/domeny/trzistepoptavek.com/web/subdomeny/www/ad/log_kam.php on line 41 Vyřešil jsem to tak, že mám další soubor s aktualizovaným seznamem názvů ostatních oddělených středníkem, kterej bez problémů načtu a pak si už vypíšu ostatní podle toho. Je to trochu kostrbatý, ale funkční a naštěstí se to nebude dělat stokrát za minutu. |
||
Časová prodleva: 12 let
|
0