Newsgroup: it.comp.www.php
Titolo: problema con upload di file

Dovrei caricare dei files tramite un form (il tutto in php)
questo è il codice del form
<form enctype="multipart/form-data" action="upload.htm" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
questo quello della pagina upload.htm, che dovrebbe fare l'upload
<?php
// In PHP earlier then 4.1.0, $HTTP_POST_FILES should be used instead of
// $_FILES.  In PHP earlier then 4.0.3, use copy() and is_uploaded_file()
// instead of move_uploaded_file
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    print "File is valid, and was successfully uploaded. ";
    print "Here's some more debugging info:\n";
    print_r($_FILES);
} else {
    print "Possible file upload attack!  Here's some debugging info:\n";
    print_r($_FILES);
}
print "</pre>";
?>
Ho preso il tutto da qui
http://it2.php.net/manual/en/features.file-upload.php
Se tento di caricare un file, mi viene dato questo errore
Warning:  move_uploaded_file() [function.move-uploaded-file]: SAFE MODE
Restriction in effect.  The script whose uid is 191 is not allowed to access
/var/www owned by uid 0 in
/y/mhd/
www.alientech.it/htdocs/prova/upload/upload.htm
 on line 10
Possible file upload attack!  Here's some debugging info:
Array
(
    [userfile] => Array
        (
            [name] => semaforo_rosso.gif
            [type] => image/gif
            [tmp_name] => /tmp/phpXsmG87
            [error] => 0
            [size] => 4312
        )
)
Cioè?? Cosa vuol dire?
grazie
Andrea

 $uploadfile = $uploaddir. $_FILES['userfile']['name'];
Devi impostare la variabile $uploaddir in modo che sia conforme al tuo
webserver.
Es:
Se il file upload.htm si trova nella root del tuo sitoe vuoi fare
salvare le immagini nella sottocartella /images dovrai scrivere:
$uploaddir = dirname (__FILE__) . "/images";
etc.
-- 
I'am what I'am, I do what I can

 webserver.
sě, hai ragione, me ne sono appena accorto ed ho cambiato lo script che fa
l'upload in
<?php
// In PHP earlier then 4.1.0, $HTTP_POST_FILES should be used instead of
// $_FILES.  In PHP earlier then 4.0.3, use copy() and is_uploaded_file()
// instead of move_uploaded_file
$uploaddir = '/y/mhd/
www.alientech.it/htdocs/prova/upload/
';
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    print "File is valid, and was successfully uploaded. ";
    print "Here's some more debugging info:\n";
    print_r($_FILES);
} else {
    print "Possible file upload attack!  Here's some debugging info:\n";
    print_r($_FILES);
}
print "</pre>";
?>
solo che ora mi scrive
Warning:
move_uploaded_file(/y/mhd/
www.alientech.it/htdocs/prova/upload/NA.JPG
)
[function.move-uploaded-file]: failed to create stream: Permission denied in
/y/mhd/
www.alientech.it/htdocs/prova/upload/upload.htm
 on line 10
Warning:  move_uploaded_file() [function.move-uploaded-file]: Unable to move
'/tmp/phpjVTuub' to '/y/mhd/
www.alientech.it/htdocs/prova/upload/NA.JPG
' in
/y/mhd/
www.alientech.it/htdocs/prova/upload/upload.htm
 on line 10
Possible file upload attack!  Here's some debugging info:
Array
(
    [userfile] => Array
        (
            [name] => NA.JPG
            [type] => image/pjpeg
            [tmp_name] => /tmp/phpjVTuub
            [error] => 0
            [size] => 5014
        )
)
Questa volta cosa puň essere?
grazie
Andrea

 Andrea
La butto lì: l'utente apache forse non ha i permessi di scrivere sulla
directory "/y/mhd/
www.alientech.it/htdocs/prova/upload/
" ?
Questo se su linux, bsd, unix; su altri s.o. non saprei.
gpb
-- 
http:/
gpbizzaro.supereva.it/index.html

 Questo se su linux, bsd, unix; su altri s.o. non saprei.
si, sono su linux
grazie
Andrea

 /y/mhd/
www.alientech.it/htdocs/prova/upload/upload.htm
 on line 10
Devi impostare il SAFE MODE del PHP su OFF
vedi documentazione

 vedi documentazione
Non e' necessario impostare il PHP in safe_mode = off, oltretutto e'
una cosa nella maggior parte dei casi non fattibile a causa deri
contratti di hosting.


 boh, come faccio a saperlo? Debbo chiedere a quelli dell'hosting?
Utilizza un client FTP (es. FileZilla o SmartFTP), connettiti al tuo
sito, seleziona la cartella, tasto destro -> proprieta' -> imposti i
privilegi in modo da dare la scrittura della cartella (644 o 755).


Ogni tanto ci si dimentica di creare la cartella "tmp" sul proprio pc.
Controlla se ce l'hai.
    Mark