Strano, io con il codice che ti posto carico la foto tranquillamente in locale, e alla fine del ciclo stampo il suo percorso con FOTO: ....

Codice PHP:
        <form method="POST" enctype="multipart/form-data">
 <?php               echo '<input type="hidden" name="id" value="'.$_SESSION["id"].'" />';                       
                      echo 
'<input type="hidden" name="username" value="'.$_SESSION["username"].'" />';                       
                      echo 
'<table width=100% height=100%>';              
                      echo 
'<tr><td colspan="2"><label for="foto">Foto</label><input type="file" name="image" id="image" size="40"/></span></td></tr>';               
                      echo 
'<tr><td colspan="4" align="center"><input type="submit" id="submit" name="Invio" value="Invia"></td></tr></table></form>';  
                      
//recupero dati dal form 
                      
$id mysql_real_escape_string($_POST['id']); $username mysql_real_escape_string($_POST['username']); $image mysql_real_escape_string($_FILES['image']['name']);  
                                         if(isset(
$_POST['Invio'])){ 
                                             
$mio_path "/upload/"
                      
// indica il percorso dove vuoi creare la nuova directory 
                      
$nome_dir "prova"
                      
// indica il nome che vuoi dare alla directory 
                      
do { if (is_uploaded_file($_FILES['image']['tmp_name'])) {    
                       
// Controllo che il file non superi i 18 KB     
                       
if ($_FILES['image']['size'] > 100000) {       $msg "

Il file non deve superare i 18 KB!!</p>"
;       break;     }     
                       
// Ottengo le informazioni sull'immagine    
                        
list($width$height$type$attr) = getimagesize($_FILES['image']['tmp_name']);     
                        
// Controllo che le dimensioni (in pixel) non superino 160x180     
                        
if (($width 1500) || ($height 1500)) {       $msg "

Dimensioni non corrette!!</p>"
;       break;     }     
                        
// Controllo che il file sia in uno dei formati GIF, JPG o PNG     
                        
if (($type!=1) && ($type!=2) && ($type!=3)) {       $msg "

Formato non corretto!!</p>"
;       break;     }     
                        
// Verifico che sul sul server non esista già un file con lo stesso nome     
                        // In alternativa potrei dare io un nome che sia funzione della data e dell'ora     
                        
if (file_exists('upload/prova/'.$_FILES['image']['name'])) {       $msg "

File già esistente sul server. Rinominarlo e riprovare.</p>"
;       break;     }   
                          
// Sposto il file nella cartella da me desiderata     
                        
if (!move_uploaded_file($_FILES['image']['tmp_name'], 'upload/prova/'.$_FILES['image']['name'])) {       $msg "

Errore nel caricamento dell'immagine!!</p>"
;       break;     }else{            $foto="upload/prova/".$_FILES['image']['name'];          }   }else{echo 'immagine non caricata'; } } while (false); echo $msg;                        } ?> 
            <?php echo "FOTO:"$foto?>