no il problema era di dover mettere tutto nella stessa pagina.
alla fine così pare funzionare tutto:
Codice PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    if (
$_POST['titolo'] == NULL || $_POST['testo'] == NULL || $_POST['sezione'] == NULL || $_POST['categoria'] == NULL) {
        echo 
'Titolo, testo, sezione e categoria sono obbligatori';
    } else {
        
$maxSize 512000//byte => 550KB
        
$acceptType = array(
            
'png' => 'image/png',
            
'jpeg' => 'image/jpeg',
            
'jpg' => 'image/jpeg',
            
'gif' => 'image/gif'
        
);
        
$cartella "../uploads/";

        if (
$_FILES['file'] != "") {
            
$destinazione $cartella basename($_FILES['file']['name']);
            
$nome 'uploads/' basename($_FILES['file']['name']);
            if (
$_FILES['file']['size'] <= $maxSize) {
                if (
in_array($_FILES['file']['type'], $acceptType)) {
                    if (
move_uploaded_file($_FILES['file']['tmp_name'], $destinazione)) {
                        
$img $nome;
//                    echo $img;
                    
} else {
                        
$img "Errore nell'upload";
                    }
                } else {
                    
$img "Tipo file non accettato";
                }
            } else {
                
$img "File troppo grande";
            }
        }
        if (
$img == "Errore nell'upload" || $img == "Tipo file non accettato" || $img == "File troppo grande") {
            echo 
$img;
            
$img '';
        }
        
saveArticle($_POST['titolo'], $_POST['testo'], $_POST['sezione'], $_POST['categoria'], $_POST['file'], $_POST['tags'], $_POST['pubblicato']);
        
//        header('location: index.php');
        
echo "<h2>Tra 5 secondi verrai indirizzato in home page!</h2>";
        
header('refresh: 5; url=index.php');
    }
}
?>
form.....
grazie!!