Autor | Zpráva | ||
---|---|---|---|
davchy Profil |
#1 · Zasláno: 2. 4. 2006, 12:22:53
Zdravím a prosím o radu, seděl jsem u toho celou noc, prošel tuny příspěvků ve fórech, ale žádná řešení nepomáhala. Vím, že by to snad šlo za použití funkcí ftp, ale ten skript obsahuje plno míst, kde by se to muselo vymyslet a přepsat, že si na to netroufám. Snad jste někdo řešil něco podobného a vyřešil.
Jde o to, že se má vytvořit v adresáři „upload“ adresář s číselným názvem, kde číslo je o jedno vyšší, než počet již vytvořených adresářů, ten se vytvoří, ale pak se má v tom adresáři vytvořit další, který se jmenuje „thumbnails“ a tady už je problém, vrátí se chyba viz níže. Jen pro úplnost, do adresáře se má následné uložit obrázek a do podadresáře vytvořit náhled, nic z toho se už ale samozřejmě neděje. Warning: mkdir(): SAFE MODE Restriction in effect. The script whose uid is 33 is not allowed to access /www/floreus.net/test003/uploads/30 owned by uid 65534 in /www/floreus.net/test003/include/image_upload/image_upload.php on line 341 Warning: chmod(): Unable to access /www/floreus.net/test003/uploads/30/thumbnails in /www/floreus.net/test003/include/image_upload/image_upload.php on line 342 Warning: chmod(): No such file or directory in /www/floreus.net/test003/include/image_upload/image_upload.php on line 342 Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 33 is not allowed to access /www/floreus.net/test003/uploads/30 owned by uid 65534 in /www/floreus.net/test003/include/image_upload/image_upload.php on line 346 Warning: chmod(): Unable to access /www/floreus.net/test003/uploads/30/bg_foot.gif in /www/floreus.net/test003/include/image_upload/image_upload.php on line 347 Warning: chmod(): No such file or directory in /www/floreus.net/test003/include/image_upload/image_upload.php on line 347 Zápis ve skriptu: if (!is_dir($dest)) { mkdir($dest); chmod($dest, 0777); mkdir($dest.'thumbnails'); chmod($dest.'thumbnails', 0777); } // Save file move_uploaded_file($tmp_name, $dest.$name); chmod($dest.$name, 0666); Budu vděčný za pomoc. |
||
koudi Profil |
#2 · Zasláno: 2. 4. 2006, 12:30:48
Řešil sem něco podobnýho, ale nakonec sem to všechno přepsal přes ftp funkce. Ono jde o to, že když vytvoříš složku přes skript, tak to nějak funguje tak, že se ji jako vlastník přiřadí proces apache a ten pak nepustim proces tvýho skriptu, protože 'to je někdo jinej'.
Jestli sem to blbě pochopil, tak mě někdo opravte. |
||
davchy Profil |
#3 · Zasláno: 2. 4. 2006, 12:38:58
Řešil sem něco podobnýho, ale nakonec sem to všechno přepsal přes ftp funkce. Ono jde o to, že když vytvoříš složku přes skript, tak to nějak funguje tak, že se ji jako vlastník přiřadí proces apache a ten pak nepustim proces tvýho skriptu, protože 'to je někdo jinej'.
Jestli sem to blbě pochopil, tak mě někdo opravte. Pochopeno je to dobře, že je to tímto, to jsem v noci vyčetl z každého drůhého příspěvku na fórech. Já jen vím, že na přepsání pro ftp nestačím, a občas jsem někde narazil na to, že se dá "nějak" zařídit, aby se předávalo UID tak, že tam přístup pak je. Třenba na to nějaký trik bude...? |
||
koudi Profil |
#4 · Zasláno: 2. 4. 2006, 12:41:19
davchy
no, myslim že neni. Kdybys ho našel, asi by to hodně lidem pomohlo. Přepsat to na ftp je docela jednoduchý. Stačit pomocí ftp akorát vytvářet ty složky. Tady máš funkci, co sem někde našel function FtpMkdir($path, $newDir) { $server=''; // ftp server $connection = ftp_connect($server); // connection // login to ftp server $user = ""; $pass = ""; $result = ftp_login($connection, $user, $pass); // check if connection was made if ((!$connection) || (!$result)) { return false; exit(); } else { ftp_chdir($connection, $path); // go to destination dir if(ftp_mkdir($connection,$newDir)) { // create directory return $newDir; } else { return false; } ftp_close($conn_id); // close connection } } |
||
davchy Profil |
#5 · Zasláno: 2. 4. 2006, 12:51:46
No toho se právě bojím, že to budu muset přepsat. No to zas bude probdělých nocí :( Za tu funkci díky, jestli na to fakt nic nebude, tak jako vzor určitě pomůže. ...třeba mi na hostingu SAFE MODE vypnou ;)
|
||
koudi Profil |
#6 · Zasláno: 2. 4. 2006, 12:54:12
Hm, asi nevypnou :)
Teď nevim, umí php předeklarovat svoje funkce? že by se to třeba pojmenovalo mkdir a nemuselo by se nic přepisovat? Ale mam pocit, že to v php nejde. |
||
davchy Profil |
#7 · Zasláno: 2. 4. 2006, 12:55:39
...hmm, tak dalece nejsem.
|
||
koudi Profil |
#8 · Zasláno: 2. 4. 2006, 13:05:59
Hm, tak redeklarovat nejde.
Ale možná by to šlo trochu oblbnout přes seterrhandler, kterej zpraovává chyby, abys to nemusel všechno přepisovat. Prosté když by to objevilo tuhle chybu, tak by to zavolalo tu funcki na ftp. Ale nevim jestli by tim šli zjistit parametry mkdir a hlavně co by se mohlo stát při chybě v tý funkci ftp, která by opět volala err handler. To by se asi musel nějak dobře ošetřit, hlavní problém bude asi v těch paramatrech. |
||
davchy Profil |
#9 · Zasláno: 2. 4. 2006, 13:08:06
Díky za snahu, ale to už při mé (ne)znalosti, bude snadnější to přepsat..
|
||
davchy Profil |
#10 · Zasláno: 2. 4. 2006, 13:27:26
Tak jsem začal a nevím, co s tímto:
Warning: ftp_mkdir(): 30676 Kbytes used (5%) - authorized: 512000 Kb in /www/floreus.net/test003/include/image_upload/image_upload.php on line 355 |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0