Newsgroup: it.comp.www.php
Titolo: problema: upload file e safe_mode ON

Ciao,
ho creato un piccolo script per l'upload di un'immagine in una data 
directory del server.
L'upload funziona egregiamente su Aruba. Testato su un altro hosting 
(Yk2hosting) non funziona.
$nomefile=$_FILES["efile"]["name"];
$tipofile=$_FILES["efile"]["type"];
$dimensione=$_FILES["efile"]["size"];
$temporaneo=$_FILES["efile"]["tmp_name"];
$utente=$this->input->post('utente');
 
$directory="home/httpd/vhosts/
miosito.it/httpdocs/upload/cartella_
".$utente;
if (!is_dir($directory)):
mkdir($directory);
endif;
 
$directory=$directory."/file";
if (!is_dir($directory)):
mkdir($directory);
endif;
 
$nomedelfile=$nomefile.$estensione;
move_uploaded_file($temporaneo, $directory."/".$nomedelfile);
Brevemente, lo script verifica se la cartella di destinazione (diversa 
per ogni utente) esiste, altrimenti la crea e crea al suo interno una 
sottocartella di nome "file" nella quale dovrï¿œ essere caricata l'immagine.
Quando tento l'upload, ottengo questi due messaggi:
Message: mkdir() [function.mkdir]: SAFE MODE Restriction in effect. The 
script whose uid is 10439 is not allowed to access 
/home/httpd/vhosts/
miosito.it/httpdocs/upload/cartella_20
 owned by uid 48
Message: move_uploaded_file() [function.move-uploaded-file]: Unable to 
access 
/home/httpd/vhosts/
miosito.it/httpdocs/upload/cartella_20/file/nomefile.jpg
In pratica, da quello che ho capito, la directory viene creata con 
l'owner "apache" (l'ho verificato tramite FTP), e la direttiva PHP_SAFE 
impedisce ogni ulteriore modifica, che invece dovrebbe essere di 
competenza dell'utente "miosito", che ï¿œ l'utente ablitato tramite 
pannello Plesk. E' giusto?
Banalmente, ho tentato di agire con il comando
chown($directory, "miosito")
ma in questo caso ottengo:
Message: chown() [function.chown]: Operation not permitted
Come sistemo, premettendo che ho giï¿œ provato, senza successo, a 
disabilitare la direttiva php_safe da htaccess? Se non altro per
risolvere l'urgenza :-)
m.
-- 
"La legge, in Italia, ï¿œ come l'onore delle puttane"
(Curzio Malaparte)

 risolvere l'urgenza :-)
se si potesse aggirare da codice, diventerebbe una direttiva 
completamente priva di senso :)
safe_mode (che è deprecata) fa parte delle direttive di sistema, la puoi 
cambiare solo nell httpd.conf(o come si chiama nella tua distro)  o nel 
php.ini. Insomma, permessi di amministratore.
Per quanto riguarda plesk, (mi sembra di capire che hai quello)vai nel 
dominio, setup, e li c'è la voce per gestire il safe mode
ciao

 risolvere l'urgenza :-)
Premettendo che quello che dice RedWiz e` corretto, io cambierei hosting, 
proprio perche` safe_mode e` deprecato da anni e che ci sono modi 
migliori per isolare gli script PHP da parte di un hosting.
Bye.

Alessandro Pellizzari ha scritto:

Hmmm... addirittura?
Proverò a contattare l'assistenza dell'hosting e capire se possono 
metterci le mani, altrimenti valuteremo eventuali trasferimenti 
(purtroppo non dipende da me).
Comunque nel frattempo c'è qualche accorgimento che posso adottare per
far funzionare il mio script?
m.
-- 
"La legge, in Italia, è come l'onore delle puttane"
(Curzio Malaparte)

 far funzionare il mio script?
hai letto la mia risposta?
hai accesso al pannello plesk?
altrimenti, hai i diritti/accesso ad un qualche pannello (o shell, o quel 
che è) che ti permette di cambiare le impostazioni del webserver e 
riavviare quest'ultimo?
se no: ciccia.
Comunque mi sembra proprio strano che esista un hosting che mette il 
safemode ad on senza dare agli utent la possibilità di toglierlo, credo 
fallirebbe in poco tempo.

 fallirebbe in poco tempo.
Ho consultato la guida online: confermano che safe_mode è abilitato di 
default, ma si può disabilitare dietro richiesta. Quindi penso che di 
mio possa fare ben poco.
