Può capitare che in ambiente windows la variabile $_SERVER['DOCUMENT_ROOT'] non sia definita, prova modificare il codice in questo modo:
Codice PHP:
if(!isset($_SERVER['DOCUMENT_ROOT'])){ if(isset($_SERVER['SCRIPT_FILENAME'])){
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF'])));
}; };
if(!isset($_SERVER['DOCUMENT_ROOT'])){ if(isset($_SERVER['PATH_TRANSLATED'])){
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF'])));
}; };
$dir=$_SERVER['DOCUMENT_ROOT'].'/upload';
$filename=$id.'immagine'.$_FILES['miofile']['name'];
if(trim($_FILES["miofile"]["name"])=='') {die("non hai indicato il file");} $tipi_consentiti=array('image/gif','image/x-png','image/pjpeg','image/jpeg'); if(!in_array($_FILES['miofile']['type'],$tipi_consentiti))
{die('tipo file non consentito');}
if(is_uploaded_file($_FILES["miofile"]["tmp_name"])) { move_uploaded_file($_FILES["miofile"]["tmp_name"],$dir.'/'.$filename) or die('errore'); $sql='UPDATE attivita SET att_immagine="'.$filename.'" WHERE att_id='.$id;
mysql_query($sql);
Comunque l'action del form, messa in quel modo non mi piace molto... sei sicuro che il submit venga fatto correttamente?