Zdravím, na webu si nechám vypsat obsah složky a chci zjistit zda v ní je i další nějaká složka. Při tomhle zjišťování mi zobrazí stránka tento warning:
Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(..) is not within the allowed path(s): (/3w) in /3w/wz.cz/*//*/operations.php on line 8.
Co s tím?
Ještě podotýkám, že cesta je správná a pod tímto warningem se mi vypíše obsah složky.
Hláška říká, že se pokoušíš dostat tam, kam nemáš oprávnění k přístupu.
Upozornění se zobrazilo při pokusu o zavolání funkce is_dir() s parametrem "(..)" na řádku 8. Interpret ji vyhodnotil jako pokus o neoprávněný přístup k adresáři. Což rozhodně není správně.
Jenže problém je, že zadávám správně umístění do is_dir();. Normálně se zobrazí warning a pod ním to, co má (strom složek který jsem si nechal vypsat). Př.:
Mám kořenovou složku (hlavní):
v ní složky pages, images, files.
pokud se z hlavní složky chci do nějaké uvedené podsložky dostat, hodí mi php tento warn.
Tak sem napiš, jaká máš práva k tomu adresáři. PHP totiž běží pod jiným uživatelským účtem než FTP.
Každá složka má práva 755 (Vlastník vše, Skupina čtení vykonání, Svět čtení vykonání)
Dej sem skutečné znění chybové hlášky. To cos sem dodal, je upravený a může mezi ně být i ta zásadní informace.
Nějak se mi totiž nelíbí hláška: File(..) is not within the allowed path(s): (/3w).
Je nutno ještě dodat, že kromě adresářů se vypisuje i dvojice pseudoadresářů "." a "..". Pokud je nemáš ošetřené, pak to může být ona chyba, kterou to hlásí. Pokud necháváš vypisovat hlavní adresář, pak pokus o zavolání is_dir('..') vyvolá chybu, protože o úroveň výš už nemáš přístup.
Vyřešeno, já jsem si to pak uvědomil po napsání předchozího příspěvku protože tam bylo ono zmíněné File(..) což je nadsložka aktuální složky. Díky.