Autor | Zpráva | ||
---|---|---|---|
Nich Profil |
#1 · Zasláno: 11. 8. 2010, 01:04:23
Řeším velkou záhadu proč mi to jde a zároveň nejde...
Pokud uploaduji soubor jen do složky stroje (bez vytvoření cílové), tak vše funguje.... ale pokud si vytvořím složku a chci uploadovat do ní, tak se tam soubor nedostane. tady je kód: //Proměnná $id['id'] je vždy nějaké číslo (podle 'id' záznamu v databázi), ale to na to vliv snad nemá :-) //Pripojeni k FTP $ftp_server = "ftp.server.cz"; $ftp_user = "nick"; $ftp_pass = "****"; // set up a connection or die $conn_id = ftp_connect($ftp_server, 21) or die("Couldn't connect to $ftp_server"); // try to login if(ftp_login($conn_id, $ftp_user, $ftp_pass)) { //vytvoříme si složku mkdir("../stroje/".$id['id']."/", 0777); chmod("../stroje/".$id['id']."/", 0777); $tmp_name = $_FILES['foto_1']['tmp_name']; $name = $_FILES["foto_1"]["name"]; $path = "../stroje/" . $id['id'] . "/" . $name; $transfer_mode = FTP_BINARY; if (move_uploaded_file($tmp_name, $path)) { if (ftp_put($conn_id, $name, $path, $transfer_mode)) { echo "UPLOADNUTO"; } else { echo "NEUPLOADNUTO 2"; } } else { echo "NEUPLOADNUTO 1"; } } else { die("Nepřipojeno k FTP"); } // close the connection ftp_close($conn_id); nejvíc nechápu z toho, že když dám: var_dump(is_writable("../stroje/" . $id['id'] . "/")); tak mi to vyhodí TRUE .... přitom uploadovací script echuje "NEUPLOADNUTO 1" No a když zkusím nastavit $path jen na $path = "../stroje/" . $name; tak se ten soubor do slořky "stroje" dostane... nechápu |
||
Alphard Profil |
#2 · Zasláno: 11. 8. 2010, 01:10:43
Máte povolený výpis chyb? Zřejmě ne, povolte si ho.
Zkuste na 15. řádek dát umask(0000); |
||
Medvídek Profil |
#3 · Zasláno: 11. 8. 2010, 01:24:45 · Upravil/a: Medvídek
Nich:
chmod("../stroje/".$id['id']."/", 0777); chmod tuším neumí práva 0777, to umí pouze ftp_chmod |
||
Nich Profil |
#4 · Zasláno: 11. 8. 2010, 01:35:45
Alphard:
Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 106934 is not allowed to access /www/sites/4/site6934/public_html/stroje/148 owned by uid 33 in /www/sites/4/site6934/public_html/admin/index.php on line 197 |
||
Alphard Profil |
#5 · Zasláno: 11. 8. 2010, 01:37:31
Nich:
No jo, safe mode. Hledejte, je to známý pojem, ale řešení složité. Já jsem měl zatím štěstí na hostingy, že byl vypnutý, takže z vlastní zkušenosti neporadím. |
||
Nich Profil |
#6 · Zasláno: 11. 8. 2010, 01:54:41 · Upravil/a: Nich
Alphard:
no holt budu mít ve složce "stroje" bordel, ale budu všchny uživatelský soubory cpát do ní... jen dám před soubor vždycky $id__jmeno_souboru, aby se v tom dalo aspon trochu vyznat :-) i tak moc dík za pomoc :-) ale když to jde udělat jinak tak se mi nechce ten SAFE MODE vypínat |
||
Nich Profil |
#7 · Zasláno: 11. 8. 2010, 02:25:52
Ještě jsem zkusil funkci ftp_mkdir místo mkdir ale vyplivlo mi to tohle:
Warning: ftp_mkdir() [function.ftp-mkdir]: Can't create directory: No such file or directory in /www/sites/4/site6934/public_html/admin/index.php on line 189 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access ../stroje/154/nadpis_staveb.png in /www/sites/4/site6934/public_html/admin/index.php on line 199 asi to holt se SAFE MODEm nepude :-) |
||
Lamicz Profil |
#8 · Zasláno: 11. 8. 2010, 19:15:06
Nich:
Těmi FTP fcemi to jde - vytvoří se složka, nastaví se jí přes ftp_chmod 0777, pak se tam nacpe soubor, nastaví se mu 0644. Jediný zásek je v tom, že ta cesta pro FTP musí být přesně stejná jako např. Total Commandera, takže včetně www/subdomains/... apod. Zkrátka jak se připojí FTP klient na hosting, plná cesta až k dané složce. Další podmínka je NEKOMBINOVAT FTP fce a klasický upload. Buď jedno nebo druhé. Takže žádné move_uploaded_file ale ftp_put. Viz PHP FTP. Důležitá je ta plná cesta a ftp_chmod v každém kroku - když se to nastaví blbě, tak hrozí, že ten soubor nepůjde ani smazat z FTP nebo přečíst prohlížečem (což je logické), na adr. i soubory. Na SAFE MODE je to jediné řešení jak to tam dostat (alespoň jsem na jiné nepřišel). |
||
Časová prodleva: 14 let
|
0