incollo il codice che, però, su un altro server, ha sempre funzionato.

codice:
/*****************************UPLOAD FOTOGRAFIA****************************************/
        if (isset ($upload)) {
                if ($xfoto != "none") {
                  $dati = explode (".", $xfoto_name);
                  if (strtolower ($dati[1]) == "gif" || strtolower ($dati[1]) == "jpg") {
                        $nome_file = $session_table."_foto".$session_prog.".".$dati[1];
                        if ($session_didascalia == "true")$SQL = "UPDATE $session_table SET file = '$nome_file', didascalia = '".pulisci_str ($xdidascalia)."
' WHERE prog = '$session_prog'";
                        else $SQL = "UPDATE $session_table SET file = '$nome_file' WHERE prog = '$session_prog'";
                        if ($ris = mysql_query ($SQL, $conn_db)) {
                          if ($nome_file_old != "") unlink ("$session_dir/$nome_file_old");
                          copy ("$xfoto", "$session_dir/$nome_file");
                          header ("Location: $PHP_SELF");
                        }
                  }
                  else {
                    $errore = 2;
                        $mfoto = true;
                  }
                }
                else {
                  $errore = 0;
                  $mfoto = true;
                }
        }