Autor Zpráva
Anonymní
Profil *
Ako vytvorim adresar so vsetkými pravami?

????????(mkdir("../obchod/".$adresar, 0777))?????
halogan
Profil
Ano, presne tak
Anonymní
Profil *
ale bohuzial tentto adresar plne práva na serveri nema
Anonymní
Profil *
Warning: fopen() [function.fopen]: SAFE MODE Restriction in effect. The script whose uid is 1225 is not allowed to access /domains1/gh114800/public/www_root/obchod/rweq owned by uid 1003 in /domains1/gh114800/public/www_root/predajca/adresar.php on line 12

a na 12 riadku mam toto
$fp = FOpen ("../obchod/".$adresar."/index.php", "a");

Kde je potom chyba ak nie v adresari?
Honza Hučín
Profil
SAFE MODE má určitá omezení. Myslím, že například neumožňuje tvořit podadresáře, měl jsem podobný problém, když jsem chtěl použít šablonovací systém Smarty.
Možná řešení, která znám:
a) vypnout safe mode nějakou konfigurační direktivou, nevím přesně kterou
b) obejít se bez podadresářů (což ve Smarty jde)
Martin Kuželka
Profil
Pokud se nepletu, adresáře lze vytvářet i při zapnutém Safe Modu pomocí nějakých ftp funkcí v PHP.
Leo
Profil
Prava a sprava souboru / adresaru a uzivatelu na unixu je vec, kterou jsem dodnes nepochopil, Leo
Kráťa
Profil
Mě stačilo když jsem na ftp kliknul na adresář v IE pravým, zvolil vlastnosti a všechna práva zaškrtnul.
llook
Profil
Podle Manuálu v safe modu mkdir() "Kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript."

UID = user ID, identifikační číslo uživatele. Jestli tedy není problém ve vlastnictví adresáře, ve kterém chceš ten adresář vytvořit?

Ovšem lze vytvářet adresáře také přes FTP funkce, jak bylo zmíněno. Pokud vím, tak například juneauův redakční systém to tak dělá.
llook
Profil
Teď jsem si uvědomil, že skripty nahrané přes FTP by měli mít stejné UID jako proces FTP serveru. Ale soubory a adresáře vytvářené pomocí PHP získávají UID procesu serveru (nebo PHP v případě CGI).
Takže pro vytváření adresářů jedině FTP funkce.
juneau
Profil
$ftp_server = 'ftp.blalala.com';
$ftp_user_name = 'blalala.com';
$ftp_user_pass = 'blalala';

$path = 'novy_adresar';

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if ((!$conn_id) || (!$login_result)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user_name";
exit;
} else {
echo "Connected to $ftp_server, for user $ftp_user_name";
}

$creat_dir = ftp_mkdir($conn_id,$path);
// close the FTP stream
ftp_close($conn_id);


*********************************
Pozor na adresu noveho adresare! Protoze ftp udaje, ktere zadas, jsou stejne, jako by ses prihlasil pres ftp klienta. takze script uvidi stejne slozky, jake uvidis ty v klientovi... je to relativni adresa k adresari, na ktery je ftp ucet miren.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0